intore Asked: 2018-01-20 06:03:15 +0800 CST2018-01-20 06:03:15 +0800 CST 2018-01-20 06:03:15 +0800 CST 如何检索用户的权限 772 我需要发现 CentOS 系统中用户的权限。是否可以找到用户可以访问的目录以及他可以执行的命令?它不涉及 ACL。 centos permissions 1 个回答 Voted Best Answer Kusalananda 2018-01-20T06:19:40+08:002018-01-20T06:19:40+08:00 为了能够执行文件,该文件必须 归用户所有并可由用户执行,或 与用户属于同一组并且可由该组执行,或者 可由“其他人”执行。 以下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 \)
为了能够执行文件,该文件必须
以下
find
命令在当前目录中查找此类文件(仅适用于当前用户及其主要组):-0100
表示“至少可由用户执行”,并且-0010
等同-0001
于“组”和“其他”。文件夹的相同标准或可访问性(如果我没有完全弄错的话),因此更改
-type f
为-type d
应该为您提供可访问的文件夹。-0500
显然,人们可能还想检查文件夹中的“读取”位(-0050
而-0005
不是上面的权限)。对于文件夹,这可能是一个解决方案:
我在
-prune
最后添加了,这样我们就不会进入用户无论如何都无法访问的文件夹。将点更改为斜线以搜索整个系统。
也很容易把它转过来只打印用户无法访问的文件夹的名称: