二周第四次課
set_uid使二進制的執行程序,普通用戶在執行時臨時有所有者身份
set uid設置了非可執行文件沒有意義
#ll /usr/bin/passwd -rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd ll /etc/shadow ----------. 1 root root 640 Dec 1 03:48 /etc/shadow
gpasswd -d aiker root //從root組刪除用戶aiker,註銷重新登錄生效
su - aiker //切換用戶
$ ll /root/ls : cannot open directory /root/: Permission denied
chmod u+s /usr/bin/ls -rwsr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls
$ ll /root/ total 12 dr-xr-xr-x. 2 root aiker 6 Dec 2 14:40 1 drwxr-xr-x. 4 root root 28 Dec 2 23:12 111 -rw-r--r--. 1 aiker aiker 0 Dec 2 16:11 1.txt
chmod u-s /usr/bin/ls $ ll /root/ ls: cannot open directory /root/: Permission denied |
chmod u=rws /usr/bin/ls # ll /usr/bin/ls -rwSr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls |
chmod u=rwsx /usr/bin/ls # ll /usr/bin/ls -rwsr-xr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls |
2.19 特殊權限set_gid
chmod g+s /usr/bin/ls
# ll /usr/bin/ls //對執行文件使用set gid相當於set uid-rwxr-sr-x. 1 root root 117656 Nov 6 2016 /usr/bin/ls
$ ll /root/ total 12 dr-xr-xr-x. 2 root aiker 6 Dec 2 14:40 1 drwxr-xr-x. 4 root root 28 Dec 2 23:12 111
chmod g+s 9 //當對目錄set gid,在目錄下創建的目錄和文檔會和目錄的所屬組相同,都會繼承set uid權限,多一個s
drwxrwsr--. 3 root aiker 16 Dec 2 22:52 9
touch 9/12.txt [root@aiker01 ~]# ll 9/ total 0 drwxr-sr-x. 2 root aiker 6 Dec 3 00:27 1 -rw-r--r--. 1 root aiker 0 Dec 3 00:28 12.txt drwxrwxr--. 2 root aiker 6 Dec 2 22:52 kk
[root@aiker01 ~]#mkdir 9/11
ll 9/ total 0 drwxr-sr-x. 2 root aiker 6 Dec 3 00:27 1 drwxr-sr-x. 2 root aiker 6 Dec 3 00:27 11 drwxrwxr--. 2 root aiker 6 Dec 2 22:52 kk
chmod g-s 9
drwxr-xr-x. 2 root root 6 Dec 3 00:32 123 -rw-r--r--. 1 root root 0 Dec 3 00:32 124
2.20 特殊權限stick_bit
2.21 軟鏈接文件
相當於快捷方式,可以連接文件或目錄,做軟連接盡量使用絕對路徑 |
軟連接應用,比如boot分區滿了,可以把裏面的日誌文件復制到其他分區目錄,刪除boot裏的日誌文件,建立一個軟連接到boot裏日誌文件名
符號鏈接確實是一個新文件,當然它具有不同的I節點號;而硬鏈接並沒有建立新文件。
符號鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接,也可以在不同文件系統之間做符號鏈接。
用ln -s命令建立符號鏈接時,源文件最好用絕對路徑名。這樣可以在任何工作目錄下進行符號鏈接。而當源文件用相對路徑時,如果當前的工作路徑與要創建的符號鏈接文件所在路徑不同,就不能進行鏈接。
符號鏈接保持了鏈接與源文件或目錄之間的區別:
刪除源文件或目錄,只刪除了數據,不會刪除鏈接。一旦以同樣文件名創建了源文件,鏈接將繼續指向該文件的新數據。
在目錄長列表中,符號鏈接作為一種特殊的文件類型顯示出來,其第一個字母是l。
符號鏈接的大小是其鏈接文件的路徑名中的字節數。
當用ln -s命令列出文件時,可以看到符號鏈接名後有一個箭頭指向源文件或目錄,例如lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的數字“14”恰好說明源文件名original_file由14個字符構成。
2.22 硬連接文件
硬鏈接不會占多份空間,不能對目錄做硬鏈接,硬鏈接不能跨分區,硬鏈接和源文件具有相同的iNode,硬鏈接可以刪除
建立硬鏈接時,在另外的目錄或本目錄中增加目標文件的一個目錄項,這樣,一個文件就登記在多個目錄中。如圖所示的m2.c文件就在目錄mub1和liu中都建立了目錄項。
創建硬鏈接後,己經存在的文件的I節點號(Inode)會被多個目錄文件項使用。一個文件的硬鏈接數可以在目錄的長列表格式的第二列中看到,無額外鏈接的文件的鏈接數為l。
在默認情況下,ln命令創建硬鏈接。ln命令會增加鏈接數,rm命令會減少鏈接數。一個文件除非鏈接數為0,否則不會從文件系統中被物理地刪除。
對硬鏈接有如下限制:
不能對目錄文件做硬鏈接。
不能在不同的文件系統之間做硬鏈接。就是說,鏈接文件和被鏈接文件必須位於同一個文件系統中。
ln 源文件 目標文件 |
二周第四次課