通俗理解:實際用戶ID/有效用戶ID/保存的設置用戶ID(saved set-user-ID)


閱<unix高級環境編程>過程中,
高頻出現:實際用戶ID/有效用戶ID/保存的設置用戶ID(saved set-user-ID),看着很亂,摘不清楚.

因爲Linux是多用戶多任務系統,
所以一個文件可能同時被許多人使用,
自然的,我們一定要設好每個文件的權限.

從文件的角度,看用戶/組的權限.

linux對文件的描述

常規文件,可以按下表進行理解.(/dev目錄下的文件除外)

文件屬性(佔10個字符空間) 文件數 擁有者 所屬的group 文件大小 建檔日期 文件名
drwx------ 2 Guest users 1024 Nov 21 21:05 Mail
-rwx–x--x 1 root root 89080 Nov 7 22:41 tar*
-rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*
lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip
-rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*
-rwsr-x— 1 root bin 9853 Aug 15 5:46 su*

這些顯示內容的意義:  
第一個欄位,表示文件的屬性。Linux的文件基本上分爲三個屬性:可讀(r),可寫(w),可執行(x)。但是這裏有十個格子可以添(具體程序實現時,實際上是十個bit位)。
第一個小格是特殊表示格,表示目錄或連結文件等等。

  • -:普通文件(f)
  • d:目錄文件
  • b:塊設備文件(block)
  • c:字符設備文件(character)
  • l:符號鏈接文件(symbolic link file)
  • p:命令管道文件(pipe)
  • s:套接字文件(socket)
    詳細可參考,fstat()函數手冊.

其餘剩下的格子就以每3格爲一個單位。因爲Linux是多用戶多任務系統,所以一個文件可能同時被許多人使用,所以我們一定要設好每個文件的權限,
其文件的權限位置排列順序是(以-rwxr-xr-x爲例):
rwx(Owner)r-x(Group)r-x(Other)  
這個例子表示的權限是:使用者自己可讀,可寫,可執行;同一組的用戶可讀,不可寫,可執行;其它用戶可讀,不可寫,可執行。
另外,有一些程序屬性的執行部分不是x,而是s,這表示執行這個程序的使用者,臨時可以有和擁有者一樣權力的身份來執行該程序。一般出現在系統管理之類的指令或程序,讓使用者執行時,擁有root身份。 
第二個欄位,表示文件個數。如果是文件的話,那這個數目自然是1了,如果是目錄的話,那它的數目就是該目錄中的文件個數了。  
第三個欄位,表示該文件或目錄的擁有者。 
第四個欄位,表示所屬的組(group)。每一個使用者都可以擁有一個以上的組,不過大部分的使用者應該都只屬於一個組,只有當系統管理員希望給予某使用者特殊權限時,纔可能會給他另一個組.
第五欄位,表示文件大小。文件大小用byte來表示,而空目錄一般都是1024byte,你當然可以用其它參數使文件顯示的單位不同,如使用ls –k就是用kb萊顯示一個文件的大小單位,不過一般我們還是以byte爲主。  
第六個欄位,表示創建日期。以“月,日,時間”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。  
第七個欄位,表示文件名。我們可以用ls –a顯示隱藏的文件名。

從用戶/組的角度,看文件的權限.

實際用戶ID/有效用戶ID/保存的設置用戶ID(saved set-user-ID)

實際用戶ID:
標識我們實際上是誰,是當前登錄的用戶ID.

有效用戶ID:
決定的是文件的訪問權.
通常有效用戶ID就是實際用戶ID.

設置-用戶-ID,
是一個特殊標誌,當該標誌設置時,執行該文件時的有效用戶ID就是文件的所有者ID.
比如,當一個文件的所有者是root.當你以另一個用戶登錄時,
如果沒有設置-用戶-ID,執行該文件時的有效ID和實際ID就是登錄用戶的ID,
但如果設置了設置-用戶-ID,實際用戶ID是登錄用戶ID,而有效用戶ID是root用戶的ID.

實例對應:

登錄某個賬戶,以某個賬戶的身份,操作各種文件,要麼能操作,要麼不能操作,
不能操作的原因,基本上是權限不足.
在這裏插入圖片描述
如上圖,當前登錄的賬戶guo(實際用戶ID),包含一個.viminfo文件,該文件被root賬戶創建,屬於root組.
擁有者(root)具備讀寫權限,組用戶以及其他用戶不具備任何操作權限.
此時,賬戶guo,無法對該文件進行任何操作(如下圖,權限不足),
在這裏插入圖片描述
權限不足的判據:當前的有效用戶ID(guo),不具備訪問該文件的權限
如果一定要對該文件進行操作,可以暫時提升賬戶guo的權限,
在這裏插入圖片描述
sudo+動作,動作過程中,暫時性的修改了有效用戶ID爲root,從而具備了cp動作的權限.動作執行完畢後,恢復有效用戶ID爲guo.

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