Centos
如何檢索使用者的權限
我需要發現 CentOS 系統中使用者的權限。是否可以找到使用者可以訪問的目錄以及他可以執行的命令?它不涉及 ACL。
為了能夠執行文件,該文件必須
- 歸使用者所有並可由使用者執行,或
- 與使用者屬於同一組並且可由該組執行,或者
- 可由“其他人”執行。
以下
find
命令在目前目錄中查找此類文件(僅適用於目前使用者及其主要組):uid=$( id -u ) # the user's ID gid=$( id -g ) # the primary group ID find . -type f \( \ \( -user "$uid" -perm -0100 \) -o \ \( -group "$gid" -perm -0010 \) -o \ -perm -0001 \) -print
-0100
表示“至少可由使用者執行”,並且-0010
等同-0001
於“組”和“其他”。文件夾的相同標准或可訪問性(如果我沒有完全弄錯的話),因此更改
-type f
為-type d
應該為您提供可訪問的文件夾。-0500
顯然,人們可能還想檢查文件夾中的“讀取”位(-0050
而-0005
不是上面的權限)。對於文件夾,這可能是一個解決方案:
find . -type d \( \ \( -user "$uid" -perm -0500 \) -o \ \( -group "$gid" -perm -0050 \) -o \ -perm -0005 -o -prune \) -print
我在
-prune
最後添加了,這樣我們就不會進入使用者無論如何都無法訪問的文件夾。將點更改為斜線以搜尋整個系統。
也很容易把它轉過來只列印使用者無法訪問的文件夾的名稱:
find . -type d \( \ \( -user "$uid" -perm -0500 \) -o \ \( -group "$gid" -perm -0050 \) -o \ -perm -0005 -o -print -prune \)