第二週第四節、特殊權限(set_uid、set_gid、stick_bit)/軟連接及硬連接

特殊權限

文件權限的機制是Linux系統中的一大特色,除了我們現在所熟知的讀(r)、寫(w)、執行(x)權限外,還有三個比較特殊的權限,分別爲:setuid、setgid和stick bit(粘滯位)
1、setuid與setgid講解:
查看系統中常用到它的地方,以/etc/passwd和/usr/bin/passwd爲例:
第二週第四節、特殊權限(set_uid、set_gid、stick_bit)/軟連接及硬連接
分析,/etc/passwd的權限爲-rw-r--r--也是就是說,該文件對文件所有者是有讀寫權限的,而用戶組成員和其他成員只有讀的權限,我們知道,在系統中我們要修改一個用戶 的密碼,root用戶和普通用戶都可以使用/usr/bin/passwd這個命令來修改密碼(/etc/passwd),root用戶本身就擁有對/etc/passwd這個文件有寫權限,不容置疑,一定就可以修改了;那麼普通用戶呢?這裏就用到了setuid/setgid,他們的作用就是“讓執行該命令的用戶以該命令擁有這的權限去執行”,就是普通用戶執行passwd時就會擁有root的權限。這樣就可以修改/etc/passwd這個文件了,它的標識是:s;會出現在x的地方,如圖示:-rwsr-xr-x。而setgid意思和setuid類似,就是讓執行該文件的用戶以該文件所屬組的權限去執行;
2、stick bit(粘滯位)
查看系統中常用到的地方,以/tmp目錄爲例:
第二週第四節、特殊權限(set_uid、set_gid、stick_bit)/軟連接及硬連接
大家都是在Linux系統中/tmp目錄是系統存放臨時文件的目錄,所有的用戶在該目錄下都擁有所有 的權限,也就是任何用戶在該目錄西都可以增刪改查任何文件目錄。比如a用戶創建了一個文件,爲了防止b用戶給刪了怎麼辦,爲了解決這個問題,就出現了stick_bit(粘滯位)的概念。它是針對目錄來說的,如果該目錄甚至了stick_bit,則該目錄下的文件除了該文件的創建者和root用戶可以刪除和修改/tmp目錄下的文件,別的用戶都不可以動別人的東西,這就是stick_bit(粘滯位)作用;
3、如何設置上述特殊權限
chmod u+s xxx # 設置setuid權限
chmod g+s xxx # 設置setgid權限
chmod o+t xxx # 設置stick bit權限,針對目錄

軟連接及硬連接

軟鏈接: 也稱爲符號鏈接
1.類似windows快捷方式
2.可以跨文件系統創建
3.佔用新的inode號
4.佔用少量的磁盤空間
5.刪除源文件後,軟鏈接文件無效
優點:軟鏈接(即快捷方式)可以方便快捷的訪問路徑很深的文件或文件夾。
創建軟鏈接
ln -s 源文件 目標文件
例如:
[root@a1 ~]# ln -s /tmp/222.txt 222.txt
第二週第四節、特殊權限(set_uid、set_gid、stick_bit)/軟連接及硬連接
注:源文件最好寫絕對路徑
硬鏈接:
0.給同一個inode號指定多個文件名
1.對主要數據文件備份 防止誤刪除
2.不可以跨文件系統創建(即不能跨分區)。如ln /boot/grub2/grub.cfg /tmp/grub.cfg 會報錯
3.不佔用新的inode
4.不佔用任何新的空間
5.任意刪除一個文件名,文件都不會損壞
創建硬鏈接
ln 源文件 目標文件
例如:
[root@a1 ~]# ln /tmp/333.txt 333.txt
第二週第四節、特殊權限(set_uid、set_gid、stick_bit)/軟連接及硬連接
[root@a1 ~]# ll -i 333.txt /tmp/333.txt
發現這兩個文件名的inode號相同;
技巧:用硬鏈接可以實現文件備份,這樣比用cp複製來備份更節省磁盤空間。
軟鏈接和硬鏈接的區別:
1.軟鏈接可以跨文件系統,硬連接不行
2.文件類型不一樣
3.軟鏈接可以給目錄做,硬連接不可以給目錄做
4.刪除源文件,軟鏈接無法使用,硬連接可以繼續使用
5.軟鏈接創建新的inode,硬連接不能創建新的inode

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章