Linux:Linux权限

news2024/9/20 9:32:44

目录

1. Linux权限的概念

2. Linux权限管理

2.1 文件访问者的分类

2.2 文件类型和访问权限

2.2.1 文件类型

2.2.2 基本权限

2.3 文件权限值的表示方法 

2.4 文件访问权限的相关设置方法

2.4.1 chmod

2.4.2 chown

2.4.3 chgrp

2.4.4 umask

3. file指令

4. Linux目录权限

4.1 测试证明

4.2 修改读权限

4.3 修改写权限

4.4 修改可执行权限

4.5 总结目录权限

5. Linux权限掩码umask

5.1 起始权限

5.2 umask

5.3 在root用户下

5.4 在普通用户下

5.5 修改umask

6. 粘滞位


1. Linux权限的概念

什么是权限?就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户:可以再linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]

功能:切换用户

例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。

例一:

例二:


2. Linux权限管理

Linux下,不以文件后缀来区分文件类型。
(并不代表不可以使用,在系统层面没意义,但是可以给自己看)

2.1 文件访问者的分类

  • 文件和文件目录的所有者:u---User
  • 文件和文件目录的所有者所在的组的用户:g---Group
  • 其它用户:o---Others

所有者 (User/Owner)

  • 定义:文件的所有者通常是创建文件的用户,或者是通过某些命令(如 chown)被指定为文件所有者的用户。
  • 目的:所有者对文件有最大的控制权,通常能够设置文件的权限和修改文件的内容。这样设计是为了确保文件的创建者或者指定的用户能够完全控制自己的文件资源。

所属用户组 (Group)

  • 定义:每个文件还关联有一个用户组,这通常是由创建文件时用户的默认组决定的,但也可能通过 chgrp 或 chown :groupname 命令被更改。
  • 目的:所属用户组的权限允许一组用户共享对文件的访问控制,而无需将所有用户都设置为文件的所有者。这在团队协作中尤其有用,因为团队成员可以被添加到同一个组中,从而共享对某些文件的访问权限。

其他用户 (Others)

  • 定义:除了文件所有者和所属用户组的成员之外的任何用户。
  • 目的:其他用户权限的存在确保了系统中非直接相关用户对文件的访问控制,防止未经授权的访问。这有助于保护数据的安全性和完整性,防止未授权用户读取、修改或执行敏感文件。

为什么需要这样的设计?

  • 安全性:通过限制对文件的访问,可以防止未经授权的用户访问敏感数据或进行潜在破坏性的操作。
  • 协作性:用户组的概念使得团队成员可以方便地共享文件,而不需要将文件的所有权转移给每一个需要访问文件的用户。
  • 灵活性:不同的用户和用户组可以有不同的权限,这使得管理员可以根据具体需求灵活地调整访问控制策略。

2.2 文件类型和访问权限

  • 第一列(drwxr-xr-x):表示文件或目录的权限模式。以字母和符号的形式表示了所有者、所属组和其他用户的权限。第一个字符表示文件类型,其中"d"表示目录。接下来的三个字符(rwx)表示所有者的权限,再接下来的三个字符(r-x)表示所属组的权限,最后的三个字符(r-x)表示其他用户的权限。
  • 第二列(3):表示链接到该文件或目录的硬链接数。对于目录来说,这个数字表示该目录下的子目录和文件的数量。
  • 第三列(root):表示文件或目录的所有者。
  • 第四列(root):表示文件或目录的所属组。
  • 第五列(4096):表示文件或目录的大小(以字节为单位)。对于目录来说,这个值通常是固定的。
  • 第六列(Jan 23 10:32):表示文件或目录的最后修改时间。
  • 第七列(lesson1):表示文件或目录的名称。

总计(total 8):表示当前目录下的文件和目录的总数。

2.2.1 文件类型

Windows中通过后缀名区分文件类型

Linux中不通过后缀名区分文件类型,通过第一个属性列来区分

Linux不区分文件类型,但是Linux上的工具可能会区分

2.2.2 基本权限

  1. 读(r/4 - 100):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  2. 写(w/2 - 010):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
  3. 执行(x/1 - 001):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  4. “—”表示不具有该项权限。

2.3 文件权限值的表示方法 

文件的权限一般分为三种:

  • r:读
  • w:写
  • x:可执行权限

字符表示方法

8进制数值表示方法

2.4 文件访问权限的相关设置方法

2.4.1 chmod

chmod 是 Linux 和类 Unix 系统中一个非常重要的命令,用于更改文件或目录的权限。chmod 的全称是 "change mode",它允许你修改文件或目录的访问模式,包括读(r)、写(w)和执行(x)权限。通过精确控制文件的权限,chmod 命令增强了系统的安全性和可管理性。

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式

① 用户表示符+/-=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限
  • 用户符号:  
  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

实例:

# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt

修改拥有者权限

修改所属组权限

修改其他用户权限

修改多个权限

修改所有人权限

三位8进制数字

实例:

# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

2.4.2 chown

chown 命令在 Linux 和 Unix 类似系统中用于改变文件或目录的所有者(owner)和所属用户组(group)。它的名字来源于英文 "change owner" 的缩写。这个命令通常由 root 用户或文件的当前所有者使用,因为它涉及到对文件权限的更改,而这通常需要较高的权限。

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

# chown user1 f1
# chown -R user1 filegroup1

然而我们限制拥有者不能读写,登录普通用户后就不能读写了,而root是不受权限限制的

普通用户是不能修改拥有者的,而root可以强制修改

如果要同时修改所属组和拥有者也是可以的

注意事项

  • 使用 chown 修改文件权限时要小心,特别是当递归更改目录时,因为这可能会影响到许多文件,导致意外的结果。
  • 通常情况下,只有 root 用户或者文件的当前所有者才有权限使用 chown 命令来更改文件的所有者。普通用户只能更改自己拥有的文件的所属组。

2.4.3 chgrp

chgrp 命令在 Linux 和类 Unix 系统中用于更改文件或目录的所属用户组(group)。这个命令的全称是 "change group",它允许你将一个文件或目录的所属组更改为系统中已存在的任何组。chgrp 命令通常由文件的所有者或具有 root 权限的用户使用,因为改变文件的组归属通常需要相应的权限。

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

实例:

# chgrp users /abc/f2

注意事项

  • 当你使用 chgrp 更改文件的所属组时,你需要确保新组在系统中是存在的。如果尝试使用一个不存在的组名,chgrp 命令会失败并显示错误信息。
  • 只有文件的所有者或具有 root 权限的用户才能使用 chgrp 来更改文件的所属组。

2.4.4 umask

umask 命令用于设置或报告当前进程的文件权限掩码。文件权限掩码决定了新创建的文件和目录的默认权限,它是通过从默认权限中去除某些权限位来实现的。

  • 查看或修改文件掩码
  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

实例:

# umask 755
# umask //查看
# umask 044//设置

3. file指令

file 命令在 Linux 和类 Unix 系统中是一个非常有用的工具,用于确定文件的类型。它可以识别各种文件格式,包括文本文件、二进制文件、脚本、图片、音频、视频等多种类型,并且能够提供关于文件的详细信息,如编码格式、压缩类型、MIME类型等。

功能说明:辨识文件类型。

语法:file [选项] 文件或目录...

常用选项:

  • -b:仅输出文件类型,不显示文件名。
  • -i:输出 MIME 类型和编码。
  • -L:如果遇到符号链接,显示链接指向的文件类型,而不是链接本身。
  • -m:使用指定的魔法数据库文件,而不是默认的。
  • -q 或 --quiet:静默模式,仅输出文件类型,不显示额外信息。
  • -v:详细模式,显示更多关于文件的信息。
  • -z:处理压缩文件时,自动解压并检测原始文件类型。

示例

  • 查看文件 example.txt 的类型:
    file example.txt
  • 获取多个文件的 MIME 类型和编码:
    file -i image.jpg audio.mp3
  • 静默模式下查看文件类型,适用于脚本中:
    file -qb document.pdf

输出示例

假设我们运行 file 命令检查一个文本文件:

$ file sample.txt
sample.txt: ASCII text

在这个例子中,file 命令告诉我们 sample.txt 是一个ASCII文本文件。

使用场景

file 命令在多种场景下都非常有用,包括但不限于:

  • 确认文件是否符合预期的格式,比如在上传文件前检查。
  • 在脚本中自动识别文件类型,以便进一步处理。
  • 故障排除时,帮助诊断文件损坏或格式错误的问题。
  • 安全审计时,确认文件的实际内容与声明的内容是否一致。

使用 sudo分配权限

用户未添加到信任列表并使用sudo指令时 如下图

(1)修改/etc/sudoers 文件分配文件

# vim /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令

vim /etc/sudoers:这个命令是使用vim编辑器打开/etc/sudoers文件。/etc/sudoers是一个特殊的系统文件,用于配置sudo的权限规则。通过编辑这个文件,可以为特定的用户或用户组分配sudo权限。

(2)使用 sudo 调用授权的命令

$ sudo –u 用户名 命令

实例:

$ sudo -u root /usr/sbin/useradd u2

4. Linux目录权限

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

在Linux中,目录也是文件,是文件就有属性,就有权限

在Linux中,我们可以通过cd命令进入目录

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。

那么我们要进入一个目录,需要有什么权限呢?目录和普通文件一样,也是有权限的。

4.1 测试证明

我们将dir目录的所属组和拥有者都改为zhb,在zhb用户登录下测试

4.2 修改读权限

我们修改拥有者的r权限,我们发现修改r权限,依旧能进入dir目录,但是在目录中我们不能查看该目录的文件,但是可以创建

4.3 修改写权限

修改目录的写权限,还是不会影响我们进入目录,而且这时我们查看目录文件不受影响,但是不能创建文件了

4.4 修改可执行权限

我们修改目录的可执行权限,这时就进入不了目录了

4.5 总结目录权限

根据测试,我们得出以下结论:

在Linux中

  1. 目录的r权限:用户能否查看指定目录内的文件信息
  2. 目录的w权限:用户能否在指定的目录内新建、修改、删除文件
  3. 目录的x权限:用户能否进入目录 

5. Linux权限掩码umask

5.1 起始权限

我们在创建文件或目录的时候,通常都会有起始的权限,比如目录在创建的时候就有x权限,而且所有同类型文件的起始权限都是相同的

5.2 umask

功能

  • 查看或修改文件掩码
  • 新建文件夹默认权限=0666
  • 新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask&~umask

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002

在创建文件的时候,要从起始权限中,过滤掉(不是简单的减法)在umask中出现的权限

最终权限 = 起始权限 & (~umask)

&:只有对应的两个二进位都为1时,结果位才为1

  • 创建的普通文件,起始权限是0666,去掉x的
  • 创建的目录文件,起始权限是0777,包含x的

5.3 在root用户下

5.4 在普通用户下

5.5 修改umask

可以通过umask 权限值来修改,修改之后创建文件的起始权限也会不一样

6. 粘滞位

  • 粘滞位(Sticky Bit)是一种文件系统权限的特殊标志,用于控制对目录中文件的删除权限。当粘滞位被设置在一个目录上时,只有目录的所有者、文件的所有者和超级用户才能删除或重命名该目录中的文件;其它用户可以创建文件,但是只能删除自己的文件,不可以删除别人的文件。
  • 在UNIX和类UNIX系统中,粘滞位可以通过文件系统的权限模式来设置。当一个目录的粘滞位被设置时,该目录的权限模式会以一个加号(+)和粘滞位标志(t)结尾。例如,一个具有粘滞位的目录权限模式可能是drwxrwxrwt。
  • 要设置粘滞位,可以使用chmod命令,并在权限模式中添加一个加号(+)和粘滞位标志(t)。

例如,要将粘滞位设置在目录上,可以运行以下命令:

[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作

只有目录的所有者或超级用户才能设置或取消粘滞位。粘滞位对于确保公共目录中的文件安全性非常有用,防止意外删除或修改他人的文件。 

总结:

粘滞位只能给目录设置,一般是谁设置,谁才能取消。

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1945641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何学习EMR:糙快猛的大数据之路(建立整体框架)

目录 初学EMREMR是什么?我的EMR学习故事糙快猛学习法则代码示例: 你的第一个EMR任务学习EMR的深入步骤EMR进阶技巧实用资源推荐常见挑战和解决方案 EMR生态EMR生态系统深度探索1. EMR上的Hadoop生态系统2. EMR Studio3. EMR on EKS 高级EMR配置和优化1. EMR实例集策…

音视频入门基础:PCM专题(3)——使用Audacity工具分析PCM音频文件

音视频入门基础:PCM专题系列文章: 音视频入门基础:PCM专题(1)——使用FFmpeg命令生成PCM音频文件并播放 音视频入门基础:PCM专题(2)——使用Qt播放PCM音频文件 音视频入门基础&am…

ICML 2024最佳论文开奖了!今年的热门投稿方向有这些

ICML 2024最近也放榜啦!今年共有10篇论文夺得最佳论文奖,包括火爆的Stable Diffusion 3、谷歌VideoPoet以及世界模型Genie。 ICML是国际机器学习顶会,也是CCF-A类学术会议。今年这届顶会一共收到了9473篇论文,其中2610篇被录用&am…

昇思25天学习打卡营第22天|基于MindNLP+MusicGen生成自己的个性化音乐

文章目录 昇思MindSpore应用实践1、MusicGen模型简介残差矢量量化(RVQ)SoundStreamEncodec 2、生成音乐无提示生成文本提示生成音频提示生成 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 1、MusicGen模型简…

Qt基础 | Qt SQL模块介绍 | Qt SQL模块常用类及其常用函数介绍

文章目录 一、Qt SQL模块概述1.Qt sql 支持的数据库2.SQLite 数据库3.Qt SQL 模块的主要类 一、Qt SQL模块概述 Qt SQL 模块提供数据库编程的支持,Qt 支持多种常见的数据库,如MySQL、Oracle、MS SQL Server、SQLite 等。Qt SQL 模块包括多个类&#xff0…

phpstorm配置xdebug3

查看php路径相关信息 php --ini安装xdebug https://www.jetbrains.com/help/phpstorm/2024.1/configuring-xdebug.html?php.debugging.xdebug.configure php.ini 配置 在最后添加,以下是我的配置 [xdebug] zend_extension/opt/homebrew/Cellar/php8.1/8.1.29/p…

安装NVIDIA驱动

一、不升级内核安装NVIDIA驱动 说明: 1、安装NVIDIA驱动,是用来提升AI、图片等算法 2、本人是在centos7.9操作系统安装英伟达T4板卡驱动 操作系统Centos 7.9驱动版本NVIDIA-Linux-x86_64-525.89.02.run操作账号root1.1 关闭nouveau 1、查看nouveau是否关闭 lsmod |grep nouv…

Android 常用调试工具/方法解析

一、内存相关 参考Android内存分析命令_dumpsys meminfo 算出rss-CSDN博客 1、基本概念 1)PSS & RSS & USS & VSS a、PSS 概念:全称Proportional Set Size,根据进程实际使用的内存量按照共享比例分配给进程的一种内存度量方…

MySql性能调优05-[sql实战演练]

sql实战演练 行列转换行列式转换第一题【列转行】第二题【列转行】 having的使用找到表中,名字重复的项有数据表employee,包含如下字段id、name、department、age,编写SQL,找到不与其他人同龄的年纪最大的员工的年龄有数据表emplo…

Nacos-2.4.0最新版本docker镜像,本人亲自制作,部署十分方便,兼容postgresql最新版本17和16,奉献给大家了

基于Postgresql数据库存储的nacos最新版本2.4.0,采用docker镜像安装方式 因业务需要,为了让nacos支持postgresql,特意花了两天时间修改了源码,然后制作了docker镜像,如果你也在找支持postgresql的nacos最新版本,恭喜你,你来的正好~ nacos-2.4.0 postgresql的数据库脚本…

C++学习笔记-C++11中的智能指针

1.智能指针介绍 智能指针是C的特性用法,是一个类似指针功能的类对象,其目的是为了更好的管理动态分配的内存,避免出现内存泄漏、悬空指针等问题。C11的标准库里提供了三种智能指针模板类,分别是std::unique_ptr、std::shared_ptr…

vue 两个页面切换, 再回到当前页,还是离开前的数据

1、要保证页面的name 和 建路由的大小写一致 2、页面不用生命周期--activated 调接口刷新

计算机网络八股文(三)

目录 41.为什么每次建立TCP连接时,初始化的序列号都不一样? 42.初始序列号ISN如何随机产生? 43.既然IP层会分片,为什么TCP层需要根据MSS分片呢? 44.TCP第一次握手丢失,会发生什么? 45.TCP第…

一个python脚本解决新版剪映导出字幕收费问题

如果你是希望我能完全解决剪映收费问题,我无法帮你; 两个文件,可生成不带时间线的纯文案,MD 格式,也可以生成带时间线的 SRT 文件。 因为剪映国内版对 JSON 文件进行了加密,所以请选择国际版 Cutcap&#x…

《javaEE篇》--阻塞队列详解

阻塞队列 阻塞队列概述 阻塞队列也是一种队列,和普通队列一样遵循先进先出的原则,但是阻塞队列相较于普通队列多了两项功能阻塞添加和阻塞移除,使得阻塞队列成为一种线程安全的数据结构 阻塞添加:当队列满的时候继续入队就会阻…

电脑虚拟摄像头软件分享|用手机打破电脑摄像头的极限

随着手机摄像头的不断更新迭代,手机已经接近专业电脑摄像头的画质。这让我们可以花费更低的成本获取优质的电脑录像画面。今天小编给大家详细讲解电脑虚拟摄像头的在我们日常生活中的妙用,以及分享几款口碑不错的电脑虚拟摄像头软件。有需要的小伙伴可以…

从业务到数据,大模型应用成功的再思考!

自2022年底OpenAI发布ChatGPT以来,大模型在企业的应用方兴未艾。 大模型必须要结合落地应用,才算是长出手跟脚,真正应用于实际业务场景的解决方案中,配合“大脑”完成任务。从医疗诊断到自动驾驶,从个性化营销到智能客…

数据结构重置版(概念篇)

本篇文章是对数据结构的重置,且只涉及概念 顺序表与链表的区别 不同点 顺序表 链表 存储空间上 物理上一定连续 逻辑上连续,但物理上不一定连续…

【办公软件】Office 2019以上版本PPT 做平滑切换

Office2019以上版本可以在切页面时做平滑切换,做到一些简单的动画效果。如下在快捷菜单栏中的切换里选择平滑。 比如,在两页PPT中,使用同一个形状对象,修改了大小和颜色。 选择切换为平滑后,可以完成如下的动画显示。 …

milvus的collection操作

milvus的collection操作 创建collection import uuidfrom pymilvus import (connections,FieldSchema, CollectionSchema, DataType,Collection, )collection_name "hello_milvus" host "192.168.230.71" port 19530 username "" password…