@文件隐藏属性
lsattr 查看文件隐藏属性,chattr 添加删除文件隐藏属性
设置了a属性的文件,即便是root用户也不能删除它,可以以append的方式继续向该文件中写入内容。
设置了i属性的文件,即便是root用户也无法写入、改名、删除。这种属性常用于设置在系统或者关键服务中的配置文件。
[root@xxx ~]# lsattr test1225
---------------- test1225
[root@xxx ~]# chattr +a test1225
[root@xxx ~]# lsattr test1225
-----a---------- test1225
[root@xxx ~]# echo "Merry Christmas" > test1225
-bash: test1225: Operation not permitted
[root@xxx ~]# echo "Merry Christmas" >> test1225
[root@xxx ~]# chattr +i test1225
[root@xxx ~]# lsattr test1225
----ia---------- test1225
[root@xxx ~]# echo "Merry Christmas" >> test1225
-bash: test1225: Permission denied
[root@xxx ~]# rm -rf test1225
rm: cannot remove ‘test1225’: Operation not permitted
[root@xxx ~]# chattr -ia test1225
[root@xxx ~]# lsattr test1225
---------------- test1225
[root@xxx ~]# rm -rf test1225
[root@xxx ~]#
@递归设置目录及该目录下所有的文件和目录的权限、用户、所属组用-R
chmod -R 754 <somedir>
chown -R test:testgrp <somedir>
chgrp -R testgrp <somedir>
@文件特殊属性SUID/SGID/Sticky
查看/usr/bin/passwd的权限,有个s权限在用户权限上,所以普通用户可以使用root的身份来执行这个命令。
如果某个二进制文件的用户组权限被设置了s权限,则该文件的用户组中所有的用户将都能以该文件的用户身份去运行这个命令。
Sticky权限只能用于设置在目录上,任何用户都可以在该目录中创建或修改文件,但是只有该文件的创建者和root可以删除自己的文件。
[root@xxx ~]# ll /etc/passwd
-rw-r--r--. 1 root root 3261 Dec 25 22:20 /etc/passwd
[root@xxx ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /usr/bin/passwd
[root@xxx ~]#
[root@xxx ~]# ls -ld /tmp
drwxrwxrwt. 18 root root 4096 Dec 25 23:25 /tmp
[root@xxx ~]#
参考书籍:《Linux系统命令及Shell脚本实践指南》王军 著,3.2 文件和目录的权限