1. 程式人生 > >03-Linux系統特殊權限

03-Linux系統特殊權限

Linux系統特殊權限

特殊權限set_uid,set_gid

SUID:
只對二進制程序有效
執行者對於程序需要有x權限
在程序運行過程中,執行者擁有程序擁有者的權限
例如:
普通用戶執行passwd命令。

SGID
對於文件:
SGID對於二進制程序有用
程序執行著要有x權限
執行者在執行過程中會獲得改程序用戶組的權限(相當於臨時加入了程序的用戶組)

技術分享圖片

特殊權限stick_bit

SBIT:
只針對目錄有效
當用戶對目錄擁有wx權限時,用戶在該目錄創建的文件或目錄,只有自己與root才可以刪除。

*如何給文件設置特殊權限:

chmod u+s xxx # 設置setuid權限

chmod g+s xxx # 設置setgid權限

chmod o+t xxx # 設置stick bit權限,針對目錄

chmod 4775 xxx # 設置setuid權限

chmod 2775 xxx # 設置setgid權限

chmod 1775 xxx # 設置stick bit權限,針對目錄

軟鏈接文件、硬連接文件

軟鏈接(soft link):A是B的軟鏈接(A和B都是文件名),A的目錄項中的inode節點號與B的目錄項中的inode節點號不相同,A和B指向的是兩個不同的inode,繼而指向兩塊不同的數據塊。但是A的數據塊中存放的只是B的路徑名(可以根據這個找到B的目錄項)。A和B之間是“主從”關系,如果B被刪除了,A仍然存在(因為兩個是不同的文件),但指向的是一個無效的鏈接。
硬鏈接(hard link):文件A是文件B的硬鏈接,則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。如果刪除了其中一個,對另外一個沒有影響。每增加一個文件名,inode節點上的鏈接數增加一,每刪除一個對應的文件名,inode節點上的鏈接數減一,直到為0,inode節點和對應的數據塊被回收

使用限制上說明:

硬鏈接:
a:不能對目錄創建硬鏈接,原因有幾種,最重要的是:文件系統不能存在鏈接環(目錄創建時的”..”除外,這個系統可以識別出來),存在環的後果會導致例如文件遍歷等操作的混亂(du,pwd等命令的運作原理就是基於文件硬鏈接,順便一提,ls -l結果的第二列也是文件的硬鏈接數,即inode節點的鏈接數)
b:不能對不同的文件系統創建硬鏈接,即兩個文件名要在相同的文件系統下。
c:不能對不存在的文件創建硬鏈接,由原理即可知原因。
軟鏈接:
a.可以對目錄創建軟鏈接,遍歷操作會忽略目錄的軟鏈接。
b:可以跨文件系統
c:可以對不存在的文件創建軟鏈接,因為放的只是一個字符串,至於這個字符串是不是對於一個實際的文件,就是另外一回事了

**硬鏈接和軟鏈接的作用***

硬鏈接:

硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。只刪除一個連接並不影響節點本身和其它的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。
軟鏈接:

軟鏈接又稱之為符號連接(Symbolic Link)。軟鏈接文件類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。

03-Linux系統特殊權限