高级权限介绍以及文件属性进程掩码
昨天把文件管理的基本权限介绍了,今天介绍高级权限
高级权限包含 SUID SGID Sticky权限。
1.SUID 权限
当s这个标志出现在文件所有者的x权限上时,此时就被称为Set UID,简称SUID。
作用:
SUID权限仅对可执行文件有效
执行者对于该可执行文件需要具有x权限
在执行过程中,调用者会暂时获得该文件的拥有者权限
该权限只在程序执行的过程中有效
查看usr/bin/passwd 下权限,其中s表示特殊权限
任何用户在执行该文件时,其身份是该文件的属主,在进程文件(二进制,可执行)上增加SUID权限,让本来没有相应权限的用户也可以访问没有权限访问的资源。
普通用户可通过SUID 提权,使用chmod 命令给user增加SUID 权限,切换到alice用户下,即可查看/root/file01.txt,具体如下所示。
2.SGID权限
在一个程序上添加 SGID,用户在执行过程中会获得该程序用户组的权限(相当于临时加入了程序的用户组)。
在目录/home下创建一个目录 h1,将 h1 组添加到该目录下,查看目录属组已修改为 h1。在/home/hr目录下创建一个文件 file02,该文件属组为 root,并没有继承上级目录的 h1组,具体如下所示。
在一个目录
下添加SGID ,该目录下创建的文件会继承其属组
3.sticky权限
添加Shicky后,当用户对目录具有w、x权限,在该目录下建立的文件成目录,仅有自己与root有权删除。
在目录下创建目录 dir01、并赋予其 777 权限,具休如下所示
使用siso用户在该目录下创建文件file
添加t参数后只能删除自己文件
文件属性chattr
为了保护系统文件,Linux系统会使用chattr命令改变文件的隐藏属性。该命令只对EXT2/EXT3/EXT4文件完整有效。
创建三个文件,使用lsattr查看这3个文件的隐藏属性
使用man工具查看chattr的使用方法
进程掩码umask
当用户创建新目录成文件时,系统会赋予目录成文件一个默认的权限,umak 的作用就是指定权默认值。为系统设置一个合理的 mask 值,确保创建的文件成目录具有所希纽的缺省权限,有利保证数期安全。umask 值表示要减掉的权限,也可以简单地理解为权限的“反码”,进程和新建文件、目录的默权限都会受到 umask 的影响。例如,创建目录 dir001,创建文件 file001,然后查看 umask 默认及文件与目录的权限,具体如下所示。
新建的目录如果全局可写,基本权限应该是 777,但实际上基本权限是 755,新创建的文件基本权限为644,因为umask要强制去掉 group 与other 的写权限,而文件系统默认不赋子执行权限。当把umask 默认权限设置为0777,新创建的目录与文件的基本权限为 000,具体如下所示。
不同的进程都可以设置自己的 umask,上述示例在 Shell 当中影响的是 touch 命令。新创建的用"home 目录的权限默认为 700,可以通过改变/etc/login.defs 文件中第 64 行 UMASK 的权限值,将700修改为000