該特殊權限只能針對二進制可執行文件,執行該權限後會使普通用戶在執行該文件時臨時具備該文件全部者的權限windows
[root@test-01 ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [root@test-01 ~]# ls -l /usr/bin/ls -rwxr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls 1、未賦予該命令set_uid 權限 [root@test-01 ~]# chmod u+s /usr/bin/ls 3、賦予該命令set_uid權限 [root@test-01 ~]# !ls ls -l /usr/bin/ls -rwsr-xr-x. 1 root root 117616 6月 10 2014 /usr/bin/ls
[root@test-01 ~]# su lichao [lichao@test-01 root]$ whoami lichao [lichao@test-01 root]$ ls 2、普通用戶沒法執行該命令 ls: 沒法打開目錄.: 權限不夠 [lichao@test-01 root]$ ls 4、普通用戶能夠執行該權限 4 anaconda-ks.cfg
上面兩段代碼須要穿插着看,沒有賦予/use/bin/ls set_uid權限時,普通用戶是沒法使用這個命令,而後經過執行chmod u+s /usr/bin/ls這條命令使普通用戶在執行ls時暫時擁有了root的權限,因此可以執行。ui
set gid 屬性能夠做用在二進制可執行文件上,也能夠做用在目錄上。看成用在可執行文件上時跟set uid 做用相似,它會使普通用戶在執行這個文件時具備文件所屬組的權限。目錄被設置這個屬性後,任何用戶在這個目錄下建立的文件都具備和該目錄所屬組相同的組。code
[root@localhost ~]# mkdir /media/123 [root@localhost ~]# chown :usr1 /media/123 [root@localhost ~]# mkdir /media/123/11 [root@localhost ~]# ls -lR /media/ /media/: 總用量 0 drwxr-xr-x. 3 root usr1 15 6月 9 07:12 123 /media/123: 總用量 0 drwxr-xr-x. 2 root root 6 6月 9 07:12 11 /media/123/11:這裏能夠看到,雖然media/123屬組是usr1,可是root在該目錄下建立的目錄11屬組還是root 總用量 0 [root@localhost ~]# chmod g+s /media/123 給/media/123設置set_gid權限 [root@localhost ~]# mkdir /media/123/22 [root@localhost ~]# !ls ls -lR /media/ /media/: 總用量 0 drwxr-sr-x. 4 root usr1 24 6月 9 07:13 123 /media/123: 總用量 0 drwxr-xr-x. 2 root root 6 6月 9 07:12 11 drwxr-sr-x. 2 root usr1 6 6月 9 07:13 22能夠看到root新建立的目錄22的屬組繼承了/media/123目錄的屬組 /media/123/11: 總用量 0 /media/123/22: 總用量 0
防刪除位,文件是否能被用戶刪除,主要看用戶對文件所在的目錄是否具備寫權限,若是沒有寫權限,就不能刪除該目錄下的文件,也不能添加新的文件,若是想讓用戶有添加新文件可是不能刪除別的用戶的文件,則須要該屬性,設置該屬性後,就算用戶對目錄具備寫權限,也不能刪除其餘用戶的文件繼承
[root@test-01 tmp]# chmod 777 /tmp/1 給一個目錄賦予777的權限 [root@test-01 tmp]# touch /tmp/1/123.t 在該目錄下建立一個空文件 [root@test-01 tmp]# su lichao 切換到普通用戶 [lichao@test-01 tmp]$ rm -f /tmp/1/123.t 使用普通用戶刪除該文件 [lichao@test-01 tmp]$ tree /tmp/1 成功刪除 /tmp/1 ├── 1.txt ├── 1_txt.swn ├── 1_txt.swo ├── 1_txt.swp ├── 2 └── 2.txt
[root@test-01 ~]# chmod o+t /tmp/1 給這個目錄添加sticky bit 屬性 [root@test-01 ~]# touch /tmp/1/123.t 使用root再次建立123.t空文件 [root@test-01 ~]# tree /tmp/1 查看建立結果 /tmp/1 ├── 123.t ├── 1.txt ├── 1_txt.swn ├── 1_txt.swo ├── 1_txt.swp ├── 2 └── 2.txt 1 directory, 6 files
[lichao@test-01 tmp]$ rm -f /tmp/1/123.t 使用普通用戶,再次刪除該目錄下的文件 rm: 沒法刪除"/tmp/1/123.t": 不容許的操做 沒法刪除 [lichao@test-01 tmp]$
軟連接 至關於windows裏面的快捷方式,它的命令是ln -s 源文件 快捷方式 與其餘命令不一樣的是執行這條命令,源文件放在前面it
[root@localhost ~]# ln -s /etc/passwd /media/123/2.t [root@localhost ~]# ls -lR /media /media: 總用量 0 drwxr-sr-x. 4 root usr1 44 6月 9 07:31 123 /media/123: 總用量 0 drwxr-xr-x. 2 root root 6 6月 9 07:12 11 -rw-r--r--. 1 root usr1 0 6月 9 07:30 1.t drwxr-sr-x. 2 root usr1 6 6月 9 07:13 22 lrwxrwxrwx. 1 root usr1 11 6月 9 07:31 2.t -> /etc/passwd
ln -s 也能夠對目錄使用,就是說目錄也能夠作軟連接,可是一旦源文件丟失,軟連接就會提示錯誤。test
硬連接 目錄不能作硬連接,也不能跨分區作硬連接,作完硬連接能夠刪除源文件,硬連接不受影響,硬連接不一樣於徹底複製了源文件,它不會佔用額外空間。硬連接跟源文件指向同一個iNode號,硬連接和源文件至關於iNode的兩層徹底同樣的皮,真正的內容是有iNode控制的,隨便刪除一個都不會產生影響,可是不能將硬連接和源文件都刪除。作硬連接的命令爲:ln -*源文件 連接文件 *file
[root@localhost ~]# ln /etc/passwd /media/123/4.t [root@localhost ~]# !ls ls -li /media/123 總用量 4 67887170 drwxr-xr-x. 2 root root 6 6月 9 07:12 11 620177 -rw-r--r--. 1 root usr1 0 6月 9 07:30 1.t 101100372 drwxr-sr-x. 2 root usr1 6 6月 9 07:13 22 620179 lrwxrwxrwx. 1 root usr1 11 6月 9 07:31 2.t -> /etc/passwd 34232696 -rw-r--r--. 2 root root 959 6月 9 07:12 4.t [root@localhost ~]# ls -li /etc/passwd 34232696 -rw-r--r--. 2 root root 959 6月 9 07:12 /etc/passwd