7.linux文件的特殊权限SUID,SGID,Sticky,chattr

厌伴老儒烹瓠叶,强随举子踏槐花。这篇文章主要讲述7.linux文件的特殊权限SUID,SGID,Sticky,chattr相关的知识,希望能为你提供帮助。
1、特殊权限SUID前提:进程有属主和属组;文件有属主和属组
? 1.任何一个可执行程序问件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
? 2.启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
? 3.进程访问文件时的权限,却决于进程的发起者
? (a)进程的发起者,同文件的属主:则应用文件属主权限
? (b)进程的发起者,属于文件属组;则应用文件属组权限
? (c)应用文件“其他”权限
二进制的可执行文件上SUID权限功能:
? 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
? 启动为进程之后,其进程的属主为原程序文件的属主
? SUID只对二进制可执行程序有效
? SUID设置在目录上无意义
SUID权限设定:

chmodu+sFILE... chmod4xxxFILE chmodu-sFILE...

范例:passwd文件的属主执行权限位是s,代表passwd属主可以执行
[root@cat data]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 27856 Apr12020 /usr/bin/passwd

SUID权限设定:
chmodu+sFILE... chmod4xxxFILE chmodu-sFILE...

范例:
[root@cat data]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 27856 Apr12020 /usr/bin/passwd

为cat二进制文件添加SUID权限后,即使每一类用户对passwd文件没有任何权限,使用其它用户也可查看" passwd" 文件中的数据,通过以上操作可以发现:
1)、只作用在二进制程序文件中(如作用在普通文件中没有任何意义)。
2)、在默认情况下,用户发起一个进程,该进程的属主是发起者,而并非是文件的属主,此时进程是以发起者的身份去运行。
3)、如果给二进制程序文件添加了SUID权限后,用户发起一个进程,该进程的属主为程序文件所属的属主,而并非是发起者。
2、特殊权限SGID(数字编码2)? 二进制的可执行文件上SGID权限功能:
? 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
? 启动为进程之后,其进程的属组为原有程序文件的属组
SGID权限设定:
chmodg+sFILE... chmod2xxxFILE chmodg-sFILE...

目录上的SGID权限功能:
默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,则对此目录有写权限的用户在次目录中创建的文件所属组为此目录的属组,通常用于创建一个协作目录
SGID权限设定:
chmodg+sDIR... chmod2xxxDIR chmodg-sDIR...

3、特殊权限 Stickv 位具有写权限的目录通常用户可以删除改目录中的任何文件,无论该文件的权限或拥有权
在目录设置Sticky位,只有文件的所有者或root可以删除该文件
sticky权限设定:
chmod o+tDIR... chmod1xxxDIR chmodo-tDIR...

范例:root用户的临时文件夹tmp
[root@cat data]# ll -d /tmp drwxrwxrwt. 26 root root 4096 Dec8 15:07 /tmp

4. chattr设置特殊属性//可用于防止muma自动修复,发现后删除并且用chattr + i命令自己创建一个占muma文件的位置
例:给file.txt文件添加i属性。添加i属性后不能被改名,删除,创建硬链接
?
设置文件的特殊属性,可以防止root用户误操作删除或修改文件
?不能删除,改名,更名
chattr +i

只能追加内容,不能删除,改名
chattr +a

显示特定属性
? lsattr

实例:用chattr命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf lsattr /etc/resolv.conf

会显示如下属性
----i-------- /etc/resolv.conf

【7.linux文件的特殊权限SUID,SGID,Sticky,chattr】让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a /var/log/messages


    推荐阅读