Centos

如何檢索使用者的權限

  • January 19, 2018

我需要發現 CentOS 系統中使用者的權限。是否可以找到使用者可以訪問的目錄以及他可以執行的命令?它不涉及 ACL。

為了能夠執行文件,該文件必須

  1. 歸使用者所有並可由使用者執行,或
  2. 與使用者屬於同一組並且可由該組執行,或者
  3. 可由“其他人”執行。

以下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 \)

引用自:https://unix.stackexchange.com/questions/418237