attr文件隐藏属性

lsattrchattr

[root@wangchao ~]# lsattr                         //查看当前目录特殊权限

-------------e- ./12.txt

-------------e- ./222

-------------e- ./1112

[root@wangchao ~]# chattr +a 1.txt                  //a标记

[root@wangchao ~]# lsattr 1.txt

-----a-------e- 1.txt

[root@wangchao ~]# vim 1.txt                      //修改文件保存失败

"1.txt" E212: Can't open file for writing

[root@wangchao ~]# echo "1111">>1.txt             //追加重定向成功(在文件后加内容)

[root@wangchao ~]# echo "1111">1.txt              //重新赋内容失败

-bash: 1.txt: Operation not permitted

[root@wangchao ~]# rm -f 1.txt                    //删除失败,无权限

rm: cannot remove `1.txt': Operation not permitted

[root@wangchao ~]# mv 1.txt 11.txt                        //重命名失败

mv: cannot move `1.txt' to `11.txt': Operation not permitted

[root@wangchao ~]# chattr -a 1.txt                      //去掉a

[root@wangchao ~]# echo "111">1.txt                   //重定向成功

[root@wangchao ~]# cat 1.txt

111

 

[root@wangchao ~]# chattr +i 1.txt                   //i标记

[root@wangchao ~]# chattr "2222">1.txt               //i后,更改文件操作都失败

-bash: 1.txt: Permission denied

[root@wangchao ~]# chattr "2222">>1.txt

-bash: 1.txt: Permission denied

[root@wangchao ~]# mv 1.txt 11.txt

mv: cannot move `1.txt' to `11.txt': Operation not permitted

[root@wangchao ~]# chown wangchao 1.txt

chown: changing ownership of `1.txt': Operation not permitted

[root@wangchao ~]# chattr -i 1.txt                 //解除i限制

 

+a后,仅仅可增加文件内容,不能删除,改

+i后,不能删,改,重命名

 

 

 

[root@wangchao ~]# mkdir -p 111/234/456

[root@wangchao ~]# touch 111/234/456/12.txt

[root@wangchao ~]# lsattr -R 111               //列出111下所有子目录,文件,权限

-------------e- 111/234

 

111/234:

-------------e- 111/234/456

 

111/234/456:

-------------e- 111/234/456/12.txt

[root@wangchao ~]# chattr +i 111/234/456/12.txt

[root@wangchao ~]# rm -rf 111                            //删除失败

rm: cannot remove `111/234/456/12.txt': Operation not permitted

[root@wangchao ~]# lsattr -R 111                  //逐层显示特殊权限

-------------e- 111/234

 

111/234:

-------------e- 111/234/456

 

111/234/456:

----i--------e- 111/234/456/12.txt

[root@wangchao ~]# lsattr -d 111                     //查看目录本身特殊权限

-------------e- 111

 

 

 

特殊权限suid

[root@wangchao ~]# umask

0022

[root@wangchao ~]# ls -l /etc/shadow          //存放密码文件

----------. 1 root root 1221 Jul  3 06:19 /etc/shadow

//该文件任何人都没有权限,但是root还是拥有绝对权限,其他也可以改自己的密码

[root@wangchao ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd

有个s标记即set_uid,使使用命令的人临时拥有root的权限

 

[root@wangchao ~]# which ls

alias ls='ls --color=auto'

        /bin/ls

[root@wangchao ~]# su - wangchao

[wangchao@wangchao ~]$ ls /root/                        //权限不够不能看root目录

ls: cannot open directory /root/: Permission denied

[wangchao@wangchao ~]$ logout

[root@wangchao ~]# ls -l  /bin/ls

-rwxr-xr-x. 1 root root 118932 Oct 15  2014 /bin/ls

[root@wangchao ~]# chmod u+s /bin/ls              //s权限,使使用的人拥有root权限

[root@wangchao ~]# ls -l  /bin/ls

-rwsr-xr-x. 1 root root 118932 Oct 15  2014 /bin/ls

[root@wangchao ~]# !su

su - wangchao

[wangchao@wangchao ~]$ ls /root/                   //加了s权限后,能看root目录了

111     1.txt   234              Documents    install.log.syslog  Public

1112    1.txt~  anaconda-ks.cfg  Downloads    Music               Templates

12.txt  222     Desktop          install.log  Pictures            Videos

 

 

set_uid 该特殊权限只能用于可执行文件及二进制文件上,非二进制文件加s位,不起作用(ls为二进制文件)

 

[root@wangchao ~]# chmod u-x /bin/ls                     //ux权限

 [root@wangchao ~]# ls -l /bin/ls                       //去掉x权限后,小s变成了大S

-rwSr-xr-x. 1 root root 118932 Oct 15  2014 /bin/ls

[root@wangchao ~]# ls                                   //ls还是可以使用

111     1.txt   234              Documents    install.log.syslog  Public

1112    1.txt~  anaconda-ks.cfg  Downloads    Music               Templates

12.txt  222     Desktop          install.log  Pictures            Videos

[root@wangchao ~]# su - wangchao                     

[wangchao@wangchao ~]$ ls /root/              //还是可以正常使用ls命令,有X权限

111     1.txt   234              Documents    install.log.syslog  Public

1112    1.txt~  anaconda-ks.cfg  Downloads    Music               Templates

12.txt  222     Desktop          install.log  Pictures            Videos

[wangchao@wangchao ~]$ logout

[root@wangchao ~]# chmod o-x /bin/ls                     //所有人去x权限

[root@wangchao ~]# ls -l /bin/ls

-rwSr-xr--. 1 root root 118932 Oct 15  2014 /bin/ls

[wangchao@wangchao ~]$ ls /root/                   //ls不能被wnagchao用户使用了

-bash: /bin/ls: Permission denied

[root@wangchao ~]# chmod o+x /bin/ls                //改回到原先状态

[root@wangchao ~]# chmod u-s /bin/ls

[root@wangchao ~]# chmod u+x /bin/ls

[root@wangchao ~]# ls -l  /bin/ls

-rwxr-xr-x. 1 root root 118932 Oct 15  2014 /bin/ls

 

 

 

 

特殊权限之sgid

[root@wangchao ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd

 

755 u+s =4755

[root@wangchao ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd

[root@wangchao ~]# chmod 4755 /usr/bin/passwd

[root@wangchao ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd

 

-rwsr-xr-x=4755

r=4,w=2,x=1,set_uid=4,set_gid=2,stick_bit=1

[root@wangchao ~]# ls -l /bin/ls

-rwxr-xr-x. 1 root root 118932 Oct 15  2014 /bin/ls

[root@wangchao ~]# chmod g+s /bin/ls                   //使使用命令者有其组权限

[root@wangchao ~]# ls -l /bin/ls

-rwxr-sr-x. 1 root root 118932 Oct 15  2014 /bin/ls

[root@wangchao ~]# su - wangchao

[wangchao@wangchao ~]$ ls /root/   

111     1.txt   234              Documents    install.log.syslog  Public

1112    1.txt~  anaconda-ks.cfg  Downloads    Music               Templates

12.txt  222     Desktop          install.log  Pictures            Videos

//可以使用ls查看root目录,因为有了root组的权限

[wangchao@wangchao ~]$ logout

[root@wangchao ~]# chmod g-s /bin/ls              

 //去掉sgid,其他用户不能使用ls,查看root目录了

[root@wangchao ~]# su - wangchao

[wangchao@wangchao ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

[wangchao@wangchao ~]$ logout

 

[root@wangchao ~]# cd /tmp/

[root@wangchao tmp]# chmod 777 222

[root@wangchao tmp]# su - wangchao

[wangchao@wangchao ~]$ cd /tmp/222/

[wangchao@wangchao 222]$ ls

[wangchao@wangchao 222]$ mkdir dir

[wangchao@wangchao 222]$ touch file

[wangchao@wangchao 222]$ ls -l

total 4

drwxrwxr-x. 2 wangchao wangchao 4096 Jul  3 10:15 dir

-rw-rw-r--. 1 wangchao wangchao    0 Jul  3 10:15 file

[wangchao@wangchao 222]$ logout

[root@wangchao tmp]# chmod g+s 222/

[root@wangchao tmp]# !su

su - wangchao

[wangchao@wangchao ~]$ cd /tmp/222/

[wangchao@wangchao 222]$ touch file2

[wangchao@wangchao 222]$ mkdir dir2

[wangchao@wangchao 222]$ ls -l

total 8

drwxrwxr-x. 2 wangchao wangchao 4096 Jul  3 10:15 dir

drwxrwsr-x. 2 wangchao root     4096 Jul  3 10:17 dir2

-rw-rw-r--. 1 wangchao wangchao    0 Jul  3 10:15 file

-rw-rw-r--. 1 wangchao root        0 Jul  3 10:17 file2

 

[wangchao@wangchao 222]$ ls -ld

drwxrwsrwx. 4 root root 4096 Jul  3 10:17 .

 

如果是set_gid作用于目录:目录无论谁创建目录或文件时,创建的目录,文件与set_gid作用的目录所属组保持一致。

set_gid即可作用于文件也可作用于目录

 

 

 

 

set_gid的权限

[wangchao@wangchao 222]$ logout

[root@wangchao tmp]# chmod 2755 /bin/ls

[root@wangchao tmp]# ls -l !$

ls -l /bin/ls

-rwxr-sr-x. 1 root root 118932 Oct 15  2014 /bin/ls               

[root@wangchao tmp]# chmod g-x /bin/ls              //同理无x权限,也将变成大S标记

[root@wangchao tmp]# !ls

ls -l /bin/ls

-rwxr-Sr-x. 1 root root 118932 Oct 15  2014 /bin/ls

 

[root@wangchao tmp]# chmod g+x /bin/ls             //还原到原先状态

[root@wangchao tmp]# chmod g-s /bin/ls

[root@wangchao tmp]# ls -l /bin/ls

-rwxr-xr-x. 1 root root 118932 Oct 15  2014 /bin/ls

 

 有执行权限为小s

无执行权限为大S

 

 

特殊权限之sticky  (防删除位)

[root@wangchao ~]# cd /tmp/

[root@wangchao tmp]# mkdir 333

[root@wangchao tmp]# chmod 777 333              //给权限给任何人

[root@wangchao tmp]# cd 333

[root@wangchao 333]# vi 12.txt

[root@wangchao 333]# cat 12.txt

1234

[root@wangchao 333]# ls -l 12.txt

-rw-r--r--. 1 root root 5 Jul  3 21:05 12.txt

[root@wangchao 333]# su - wangchao

[wangchao@wangchao ~]$ cd /tmp/333/

[wangchao@wangchao 333]$ ls -l

total 4

-rw-r--r--. 1 root root 5 Jul  3 21:05 12.txt

[wangchao@wangchao 333]$ vi 12.txt                        

//文件为只读,但:wq还是可以强制保存,实际上是删除了原文件,新建了新文件

[wangchao@wangchao 333]$ cat 12.txt

1234aaakkkkkkk

[wangchao@wangchao 333]$ ls -l                 //查看文件,以由root变为wangchao

total 4

-rw-r--r--. 1 wangchao wangchao 15 Jul  3 21:06 12.txt

[wangchao@wangchao 333]$ ls -ld

drwxrwxrwx. 2 root root 4096 Jul  3 21:06 .

[wangchao@wangchao 333]$ logout

[root@wangchao 333]# chmod o+t .                  //将文件加t标记

[root@wangchao 333]# ls -ld

drwxrwxrwt. 2 root root 4096 Jul  3 21:06 .

[root@wangchao 333]# chmod o-x .                 //文件无x权限,小t变为大T

[root@wangchao 333]# ls -ld

drwxrwxrwT. 2 root root 4096 Jul  3 21:06 .

[root@wangchao 333]# chmod o+x .           //加回x权限,否则其他人无法打开该目录

[root@wangchao 333]# ls -l

total 4

-rw-r--r--. 1 wangchao wangchao 15 Jul  3 21:06 12.txt

[root@wangchao 333]# cp 12.txt 33.txt

[root@wangchao 333]# ls -l

total 8

-rw-r--r--. 1 wangchao wangchao 15 Jul  3 21:06 12.txt

-rw-r--r--. 1 root     root     15 Jul  3 21:09 33.txt

[wangchao@wangchao 333]$ rm -f 33.txt

rm: cannot remove `33.txt': Operation not permitted                  

//加了t标记后,删除失败(不能删除他人的文件)。

 

T权限只能作用于目录,对文件无意义。