9月17日任務node
2.18 特殊權限set_uidcentos
2.19 特殊權限set_gidbash
2.20 特殊權限stick_bitssh
2.21 軟連接文件ui
2.22 硬鏈接文件centos7
設置了set_uid的二進制文件,其餘用戶執行時,將臨時擁有該文件全部者的權限,以此執行!最經常使用的命令passwd的二進制文件就被賦予了set_uid特殊權限!spa
設置set_uid的前提:必須是 二進制可執行文件,目錄無效3d
在u的權限組內沒有x權限時,設置set_uid後s位將變爲大寫(S)。code
#未設置set_uid,普通用戶查看/root目錄 [castiel@centos7 ~]$ /usr/bin/ls /root /usr/bin/ls: 沒法打開目錄/root: 權限不夠 #設置set_uid後,能夠以root權限查看/root [root@centos7 ~]# chmod u+s /usr/bin/ls [root@centos7 ~]# ls -l /usr/bin/ls -rwsr-xr-x. 1 root root 117656 ... /usr/bin/ls [root@centos7 ~]# su - castiel [castiel@centos7 ~]$ /usr/bin/ls /root 111 anaconda-ks.cfg
[root@centos7 ~]# ls -l /usr/bin/ls -rwSr-xr-x. 1 root root 117656 ... /usr/bin/ls
設置了set_gid的文件執行時將擁有文件所屬組(group)的權限。進程
此外對目錄設置set_gid後,執行時當前命令的用戶的所屬組將會成爲在該目錄下新建立的文件、目錄的所屬組(group),
沒有設置的其內文件的所屬組是當前用戶的所屬組。
[root@centos7 tmp]# mkdir test [root@centos7 tmp]# ls -ld test/ drwxr-xr-x. 2 root root 6 ... test/ [root@centos7 tmp]# chown :castiel test/ [root@centos7 tmp]# ls -ld test/ drwxr-xr-x. 2 root castiel 6 ... test/ # 未設置前建立目錄和文件,與後續進行對比 [root@centos7 tmp]# mkdir test/111 [root@centos7 tmp]# touch test/222.txt #設置set_gid,隨後建立新目錄和文件 [root@centos7 tmp]# chmod g+s test/ [root@centos7 tmp]# mkdir test/333/ [root@centos7 tmp]# touch test/444.txt [root@centos7 tmp]# ls -l test/ 總用量 0 drwxr-xr-x. 2 root root 6 ... 111 -rw-r--r--. 1 root root 0 ... 222.txt drwxr-sr-x. 2 root castiel 6 ... 333 -rw-r--r--. 1 root castiel 0 ... 444.txt # 一樣的去除掉group內的x權限,set_gid位顯示爲S. [root@localhost system]# chmod g-x /test [root@localhost system]# chmod g+s /test [root@localhost system]# ls -ld /test drwxr-Sr-x. 2 root root 6 ... /test
防刪除位,對一個目錄設置sticky_bit後,一個用戶將沒法刪除目錄內其餘用戶建立的文件!(root用戶除外)
正常狀況下,只要用戶對該父目錄擁有x權限,就能夠刪除目錄下的文件、子目錄,不須要關心用戶對文件、子目錄是否擁有x權限!
添加了sticky_bit權限後,能夠防止其餘用戶誤刪。
[root@centos7 test]# ls -ld /test/ drwxr-xr-x. 2 root root 16 ... /test/ # 添加sticky_bit位 [root@centos7 test]# chmod o+t /test/ [root@centos7 test]# ls -ld /test/ drwxr-xr-t. 2 root root 16 ... /test/ # 一樣的當沒有x權限,sticky_bit顯示爲T [root@localhost system]# chmod o-x /test [root@localhost system]# chmod o+t /test [root@localhost system]# ls -ld /test drwxr-xr-T. 2 root root 6 ... /test
軟連接文件至關於Windows下的快捷方式,文件類型爲l。 系統目錄/bin/目錄就是/usr/bin/目錄的軟鏈接
使用方法:ln -s 目標文件/目錄 軟連接
好處:佔用內存小
缺點:源文件/目錄被刪除或移動,軟連接將失效
修改軟連接文件的內容的實質爲修改源文件,軟連接是對其的引用!建立軟連接最好使用絕對路徑,不易出錯!
對於一個空間很少的分區,若是有一個文件被進程所使用致使所佔空間不斷變大,這時若是不想該分區被數據寫滿,
能夠先將該文件拷貝到其餘大空間分區,並在原分區內建立軟連接!!而後刪除原處文件,原進程不受影響!
[root@centos7 test]# ls -l /bin lrwxrwxrwx. 1 root root 7 ... /bin -> usr/bin
使用方法: ln 源文件 硬鏈接文件
硬連接是對同一個文件所在內存地址的引用(inode號相等),硬連接和原文件互爲硬連接!
刪除其中一個文件,另外的文件不受影響!
修改其中一個文件,另外的文件內容也變化!
硬連接沒法跨分區建立(多個分區有相同inode號,任意弄混)
!!不能對目錄設置硬連接:
新建立的硬連接不會佔用額外的空間!!由於其空間在建立源文件的時候就已經佔用了,
對應於系統內的特定內存地址,硬連接只是是對該內存地址的引用。
[root@centos7 ~]# ls -ld . dr-xr-x---. 3 root root 173 ... . [root@centos7 ~]# ls -ild . /root/ /root/.ssh/.. 16797761 dr-xr-x---. 3 root root 173 ... . 16797761 dr-xr-x---. 3 root root 173 ... /root/ 16797761 dr-xr-x---. 3 root root 173 ... /root/.ssh/.. 對於一個目錄而言,其內包含的3個子目錄均可以表示該目錄, 對目錄設置硬連接會產生循環建立,陷入死循環!
[root@centos7 test]# ls -li 總用量 8 8812615 -rw-r--r--. 2 root root 8 ... 1.txt 8812615 -rw-r--r--. 2 root root 8 ... 2.txt [root@centos7 test]# du -sh /test/ 4.0K /test/ [root@centos7 test]# du -sh 1.txt 4.0K 1.txt [root@centos7 test]# du -sh 2.txt 4.0K 2.txt