Linux2.5隐藏权限及特殊权限

Posted Learning Notes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux2.5隐藏权限及特殊权限相关的知识,希望对你有一定的参考价值。

隐藏权限lsattr_chattr

语法:chattr  [+-=] [Asaci]  [文件或者目录名]

#   i   增加后,文件不能删除、重命名、设定链接、写入或者增加数据
[[email protected] tmp]# ls -l 1.txt
-rw-rw-rw-. 1 chy002 chy002 0 10月 25 06:08 1.txt
[[email protected] tmp]# chattr +i 1.txt
[[email protected] tmp]# ls -l 1.txt
-rw-rw-rw-. 1 chy002 chy002 0 10月 25 06:08 1.txt
[[email protected] tmp]# vi 1.txt

[No write since last change]
[[email protected] tmp]# head -n2 /etc/passwd  > 1.txt
-bash: 1.txt: 权限不够
[[email protected] tmp]# lsattr 1.txt       #查看隐藏权限
----i----------- 1.txt
#不能touch,因为会修改创建时间;不能rm;不能mv
#   a只能追加,不能删除,非root用户不能设定该属性
[[email protected] tmp]# chattr +a 2.txt
[[email protected] tmp]# lsattr 2.txt
-----a---------- 2.txt
[[email protected] tmp]# rm -f 2.txt
rm: 无法删除"2.txt": 不允许的操作
[[email protected] tmp]# mv 2.txt 20.txt
mv: 无法将"2.txt" 移动至"20.txt": 不允许的操作
[[email protected] tmp]# touch 2.txt
[[email protected] tmp]# !l
lsattr 2.txt
-----a---------- 2.txt
[[email protected] tmp]# head -n2 /etc/passwd > 2.txt
-bash: 2.txt: 不允许的操作
[[email protected] tmp]# head -n2 /etc/passwd >> 2.txt
[[email protected] tmp]# chattr -a 2.txt

 

lsattr   -a   连同隐藏文件一同列出来
           -R  连同子目录的数据一同列出
           -d   仅该目录本身

  

特殊权限set_uid

       该权限是针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如普通用户使用passwd命令,可以临时获得root权限即该命令所有者权限,从而更改密码。Linux仅有这一个自带suid权限/usr/bin/passwd。

如果增加suid权限后,看到字母大写的S,这是由于之前的所有者没有了x执行权限,不受影响。  

[[email protected] chy]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[[email protected] chy]# su user
[[email protected] chy]$ ls /root/
ls: 无法打开目录/root/: 权限不够
[[email protected] chy]$ su
密码:
[[email protected] chy]# chmod u+s /usr/bin/ls
[[email protected] chy]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117616 6月  10 2014 /usr/bin/ls
[[email protected] chy]# su user
[[email protected] chy]$ ls /root/
anaconda-ks.cfg

 

特殊权限set_gid

       可以应用在文件上同样可以作用在目录上。设置在文件上和set_uid类似,前提这个文件必须是可执行的二进制文件。设置set_gid后,执行该文件的用户会临时以该文件所属组的身份执行。若目录被设置这个权限后,任何用户在此目录下创建的文件或者目录都具有和该目录所属组相同的组。 

[[email protected] tmp]# ls -ld chy0826/
drwxr-xr-x. 2 root root 30 8月  27 02:13 chy0826/
[[email protected] tmp]# chown :chy chy0826/
[[email protected] tmp]# ls -ld chy0826/
drwxr-xr-x. 2 root chy 30 8月  27 02:13 chy0826/
[[email protected] tmp]# touch chy0826/iii.txt
[[email protected] tmp]# ls -ld chy0826/iii.txt
-rw-r--r--. 1 root root 0 8月  27 02:17 chy0826/iii.txt
[[email protected] tmp]# chmod g+s chy0826/
[[email protected] tmp]# touch chy0826/ii.txt
[[email protected] tmp]# ls -ld chy0826/ii.txt
-rw-r--r--. 1 root chy 0 8月  27 02:17 chy0826/ii.txt

特殊权限stick_bit

[[email protected] ~]$ ls -dl /tmp/      
drwxrwxrwt. 9 root root 4096 10月 26 01:23 /tmp/
#可以看到tmp文件权限最后一位是t,这就是防删除位
一个文件能否被删除,取决于该文件的父目录的权限,/tmp/目录是777,任何人都可写的,所以理论上任何人都可以删除/tmp/下的所有文件,但是,user2是不可以删除user1的文件的,可以修改,只有user1和root可以删除,这就是因为/tmp/目录有一个stick_bit。
 
chmod o+t 目录    #防止其他用户删除自己文件,root用户除外 

 

以上是关于Linux2.5隐藏权限及特殊权限的主要内容,如果未能解决你的问题,请参考以下文章

linux文件的特殊权限及隐藏权限

Linux之文件(目录)默认权限特殊权限与隐藏权限

18.1.2-linux目录文件隐藏属性和特殊权限

18.1.2-linux目录文件隐藏属性和特殊权限

18.1.2-linux目录文件隐藏属性和特殊权限

文件权限二(特殊权限隐藏属性文件访问控制列表切换用户方式)