標籤:facl及查看使用者登入資訊命令的使用
我們知道檔案的存取權限的是根據檔案的屬主、屬組和其他使用者這三種來設定,而ACL是提供這三種之外的更加細部的許可權設定。ACL可以對單一使用者和目錄及檔案來設定許可權,這對於需要特殊的許可權來說很有協助。在之前談到的SUID和SGID這些特殊許可權,不過這些特殊許可權和ACL相比,ACL可以對特定的使用者來設定更加細部的許可權,而SUID和SGID則是對於多個使用者或者一組使用者來說比較合適。
在談ACL的使用之前,我們先一起來談談使用者訪問檔案時的順序是如何進行的?
在這裡暫時不討論有關SElinux的使用。
在沒有使用ACL的前提下,使用者是這樣來訪問檔案的:
首先當某一個使用者訪問一個檔案時,在使用者訪問這個檔案的時候會產生一個相應的進程,而這個進程的屬主為啟動這個檔案的使用者,進程的屬組則是啟動這個檔案使用者的基本組(預設和使用者名稱相同)。當這個進程訪問檔案時,首先會查看進程的屬主和檔案的屬主是否相同;如果不相同,則查看進程的屬主是否是檔案的屬組中的成員(不是查看進程的屬組是否和檔案的屬組是否一樣);最後如果都不想相同,則是以其他使用者的身份來訪問的。在這種情況下,使用者訪問檔案的順序流程為:
Owner-->Group-->Other
如果檔案使用了ACl,使用者是這樣來訪問的:
首先當某一個使用者來訪問一個檔案時,會檢查進程的屬組是否和檔案的屬主的是否一致;如果不一致,在檢查這個檔案是否設定了ACL,不過此時檢查的是哪些使用者對檔案有許可權(基於使用者的),而這些使用者運行檔案時也會產生一個進程,看進程的屬組和檔案的屬主是否一致;如果仍然不一致,在檢查進程的屬主是否是檔案的屬組中的成員;如果也不是,在檢查這個檔案是否設定了基於使用者組的ACL(原理同使用者的存取方法);如果這些都不行,則以其他使用者的身份來訪問。
訪問流程為:
Owner-->FACL,user-->Group-->FACL,group-->Other
使用ACL來為檔案設定額外的許可權
setfacl [-m|-x] [ug]:[USERNAME|GROUPNAME]:PERM FILE (PREM是八位元)
-m:設定ACL
-x:取消ACL,注意取消ACL的是時候,不需要加許可權。
-u:指定使用者對該檔案所具有的的許可權
-g:指定使用者組對該檔案所具有的許可權
那麼如何擷取已經設定好的ACL呢?
getfacl FILE
接下裡介紹幾種命令查看系統上有哪些使用者登入進去了
whoami:查看當前系統上面登入的有效使用者
who:查看有哪些使用者登入到系統上面來了。
終端類型:
console:控制台
pty:物理終端(VGA)
tty:虛擬終端(VGA)
ttys:串列終端
pts/#:偽終端
who -r:顯示當前系統啟動並執行層級(注意:使用su命令切換的使用者不算是登陸進去的使用者)
w:查看已經登入進去的使用者以及他們正在做些什麼
last:顯示/var/log/wtmp檔案的內容,顯示的是使用者登入曆史及使用者重啟曆史
-n #:顯示最近幾次的曆史資訊
lastb:顯示/vat/log/btmp檔案的內容,顯示的是使用者錯誤的登入嘗試
-n #:顯示最近幾次的錯誤登入嘗試
lastlog:顯示系統上面每一個使用者上次登入的時間
-u USERNAME:顯示特定使用者的最近一次的登入時間資訊
basename /PATH/TO/SOMEFILE :顯示路徑的基名
所謂基名就是指定路徑的最後一個名稱。
例如/etc/passwd的基名就是passwd
本文出自 “linux學習之路” 部落格,謝絕轉載!