目录

首先介绍两个设置权限的命令:

chmod:

chown:​

文件的特殊权限:

5.2.1 SUID

5.2.2 SGID

5.2.3 SBIT


尽管在 Linux 系统中一切都是文件,但是每个文件的类型不尽相同,因此 Linux 系统使用了不同的字符来加以区分,常见的字符如下所示。 

在 Linux 系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置来就不那么容易了。

目录文件的权限设置。对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。

文件的读、写、执行权限可以简写为 rwx,亦可分别用数字 4、2、1 来表示,文件所有者,所属组及其他用户权限之间无关联,如表所示。

若某个文件的权限为 7 则代表可读、可写、可执行(4+2+1);若权限为 6 则代表可读、可写(4+2)。

首先介绍两个设置权限的命令:

chmod:

chmod 命令能够用来设置文件或目录的权限,格式为“ chmod [ 参数] 权限 文件或目录名称”。

chown:

除了设置文件或目录的权限外,还可以设置文件或目录的所有者和所属组,这里使用的命令为chown 。
其格式为“ chown [ 参数 ] 所有者 : 所属组 文件或目录名称”。


其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而且其他人只有可读的权限。那么,这个文件的权限就是 rwxrw-r-- ,数字法表示即为 764。

在图中,包含了文件的类型、访问权限、所有者(属主)、所属组(属组)、占用的磁盘大小、修改时间和文件名称等信息。通过分析可知,该文件的类型为普通文件,所有者权限为可读、可写(rw-),所属组权限为可读(r--),除此以外的其他人也只有可读权限(r--),文件的磁盘占用大小是 34298 字节,最近一次的修改时间为 4 月 2 日的凌晨 23 分,文件的名称为 install.log。

文件的特殊权限:

5.2.1 SUID

SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
例如,所有用户都可以执行 passwd 命令来修改自己的用户密码,而用户密码保存在/etc/shadow 文件中。仔细查看这个文件就会发现它的默认权限是 000 ,也就是说除了 root 管理员以外,所有用户都没有查看或编辑该文件的权限。
语法:chmod  u±s  <绝对路径命令>
[zhangxu@localhost ~]$ touch /root/file
touch: cannot touch ‘/root/file’: Permission denied
[zhangxu@localhost ~]$ su - root
Password:
Last login: Mon Aug 30 16:58:53 CST 2021 on pts/0
[root@localhost ~]# chmod u+s /usr/bin/touch
[root@localhost ~]# su - zhangxu
Last login: Mon Aug 30 17:07:01 CST 2021 on pts/0
[zhangxu@localhost ~]$ touch /root/file
[zhangxu@localhost ~]$ sudo ls -l /root
[sudo] password for zhangxu:
total 8
-rw-------. 1 root root    1039 Aug 16 19:40 anaconda-ks.cfg
drwxr-xr-x. 2 root root       6 Aug 30 10:25 Desktop
drwxr-xr-x. 2 root root       6 Aug 30 10:25 Documents
drwxr-xr-x. 2 root root       6 Aug 30 10:25 Downloads
-rw-rw-r--. 1 root zhangxu    0 Aug 30 17:08 file

5.2.2 SGID

语法:chmod  g±s  <目录名>

SGID 主要实现如下两种功能:
  • 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
  • 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置);
SGID 的第一种功能是参考 SUID 而设计的,不同点在于执行程序的用户获取的不再是文件所有者的临时权限,而是获取到文件所属组的权限。
每个文件都有其归属的所有者和所属组,当创建或传送一个文件后,这个文件就会自动归属于执行这个操作的用户(即该用户是文件的所有者)。如果现在需要在一个部门内设置共享目录,让部门内的所有人员都能够读取目录中的内容,那么就可以创建部门共享目录后,在该目录上设置 SGID 特殊权限位。这样,部门内的任何人员在里面创建的任何文件都会归属于该目录的所属组,而不再是自己的基本用户组。此时,我们用到的就是 SGID 的第二个功能,即在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

在使用上述命令设置好目录的 777 权限(确保普通用户可以向其中写入文件),并为该目录设置了 SGID 特殊权限位后,就可以切换至一个普通用户,然后尝试在该目录中创建文件,并查看新创建的文件是否会继承新创建的文件所在的目录的所属组名称:

5.2.3 SBIT

很多环境都要求员工将资料上传到服务器的特定共享目录中,但防止被“他人”误删其他员工的资料,这时就要设置 SBIT ( Sticky Bit )特殊权限位了(也可以称之为特殊权限位之粘滞位)。SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作。

【建议将其称为“保护位”,这既好记,又能立刻让人了解它的作用】
RHEL 7 系统中的 /tmp 作为一个共享文件的目录,默认已经设置了 SBIT 特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。
当目录被设置 SBIT 特殊权限位后,文件的其他人权限部分的 x 执行权限就会被替换成 t 或者 T ,原本有 x 执行权限则会写成 t ,原本没有 x 执行权限则会被写成 T 。

现在已经给与test最大的777权限,切换到另一个用户尝试删除此文件就会发现,即便读写执行权限全部打开,但是由于SBIT特殊权限位的缘故,依然无法删除该文件。

当然,如果对其他目录来设置SBIT特殊权限位,用chmod命令就可以了。对应的参数 o+t 代表设置SBIT为粘滞位权限:

5.2 Linux文件权限与归属相关推荐

  1. Linux文件权限的更改

    Linux文件权限的更改: -Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. -文件或目录的访问权限分为只读(r),只写(w)和可执行(x) ...

  2. Linux文件权限修改

    Linux文件权限修改 一.文件属性查看 使用root创建一个1.txt文件进行实例 touch /opt/1.txt 查看文件属性 ls -l /opt/1.txt 可以看到图中红色框框内列出了文件 ...

  3. linux文件权限详解

    linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...

  4. linux文件的权限模式,Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  5. linux学习随笔——linux文件权限管理和网络配置

    一.linux文件权限管理 查看某个文件的权限命令:ls -l linux文件权限有4种:读(r).写(w).执行(x)和无权限(-) 一般用10个字符表示其权限,按照(1-3-3-3)来分组划分 1 ...

  6. Linux文件权限符号含义

    Linux文件权限符号含义 在Linux中,每个文件都有不同的权限.用户可以使用ls -l命令查看权限属性.其中,符号含义如下所示: r:读权限. w:写权限. x:可执行权限. -:没有权限. s: ...

  7. linux怎么让某一个组对一文件可读可写,设置linux文件权限,使得同一用户组的可以对一个文件自由修改...

    新添用户,设置权限 新增用户的时候设置用户所属组,将想要一起的用户设置到一个组内 usermod -g 用户组 用户名 #这里将用户的主组设置为这个总组,这里为了再之后创建文件的时候文件所属组为这个组 ...

  8. 对linux文件权限的理解,理解linux文件权限2

    使用文件权限符[root@TP-CW-WS-PH-01 ~]# ls -l total 6689968 -rw-------. 1 root root 1770 Sep 16 2012 anacond ...

  9. linux文件权限_Linux的文件特殊权限

    Linux文件权限的作用域有三个: •属主:u•属组:g•其他:o 针对这三者,除了基础的rwx权限之外,还有如下几个特殊权限 SUID: 默认情况下,进程的属主是其发起者,进程以发起者的身份运行 如 ...

最新文章

  1. Kubecon 2017大会Google高级产品经理David Aronchick访谈:机器学习和Kubernetes
  2. pageContext.findAttribute()与pageContext.getAttribute()的区别
  3. C++ STL next_permutation() prev_permutation(a,a+n)用法。
  4. Opportunity creation case in Firebug
  5. jdeveloper_JDeveloper中的Java反编译器
  6. web3@0.20.1 在依据abi创建智能合约的时候报错 TypeError: web3.eth.contract is not a function
  7. Windows PowerShell:(2)基本操作
  8. 如何理性看待蚂蚁金服OceanBase刷新TPC-C纪录
  9. Java求矩形面积和圆形面积的异常处理实例
  10. 大数据平台容量评估_如何评估组织的数据平台
  11. 记录:汇编语言编译器选择(vscode,永远的神)
  12. boj 454 帮帮小叮当【SPFA】
  13. Unity InputField光标位置不对
  14. Codeforces 1138
  15. 计网‖已知主机IP地址、子网掩码求网络地址
  16. 昆石VOS2009/VOS3000 2.1.6.00 操作指南
  17. 双硬盘装linux系统,在我的双硬盘windows电脑上安装ubuntu18.04
  18. C语言真的太强大了,C几乎无处不在!
  19. Python中有self和没有self的问题
  20. 和成熟男人谈恋爱是什么感觉

热门文章

  1. vscode 优化.vscode/ipch(解决格式化失效以及占用存储空间大的问题)
  2. 全国省市区数据库(带拼音、简称、行政编码、邮政编码等)
  3. R语言批量读取写入Excel数据
  4. Police Recruits
  5. python字符串加入变量的方法
  6. 4.3非线性函数最小二乘拟合
  7. java输出数组的最大值_JAVA 键盘输入数组,输出数组内容和最大值、最小值(示例代码)...
  8. iOS 定位(CoreLocation)
  9. 第2节课Matplotlib案例及作业
  10. Adobe acrobat 多张jpg转一组PDF 图大小问题(针对少量图片大小不一)