1. 程式人生 > >二周第四次課

二周第四次課

ln setuid setgid

2.18 特殊權限set_uid


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

# ll -d /tmp/drwxrwxrwt. 10 root   root 4096 Dec  3 00:34 /tmp/
# mkdir aiker
chmod 777 aiker/
drwxrwxrwx. 2   root  root      19 Dec    3 00:40 aiker
 cd aiker/
 [aiker@aiker01   aiker]$ ll
 total 4-rw-rw-r--. 1 gavin   gavin 6 Dec  3 00:40 1.txt
chmod o+t aiker/  //t是反刪除位,也就是自己只能刪除自己的文件
drwxrwxrwt. 2   root  root      32 Dec    3 00:49 aiker
$ ll
total 8
-rwxrwxrwx. 1 gavin   gavin 24 Dec  3 00:46 1.txt
-rw-rw-r--. 1 gavin   gavin  6 Dec  3 00:49 2.txt
$ rm 1.txt
rm: cannot remove   ‘1.txt’: Operation not permitted



2.21 軟鏈接文件

軟連接

ln   -s 源文件 目標鏈接
# ll /root/111/l
rwxrwxrwx. 1 root   root 12 Dec  3 01:05 yum.log ->   /tmp/yum.log
ln -s /tmp/aiker/   /root/111/aiker2

相當於快捷方式,可以連接文件或目錄,做軟連接盡量使用絕對路徑


軟連接應用,比如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 源文件 目標文件








二周第四次課