如何查找所有特定用户(非当前用户)可以执行的文件
对于当前用户,我可以这样做
find /some/start/dir -executable
现在我想做的事情是:查找所有用户“josh”可以执行的文件(通过“其他”权限,“用户”权限和“组”权限)。当然,我不知道用户“josh”的密码,因此我无法 su 到该用户。
在/etc/passwd中查找“josh”的用户ID。
然后运行:find /some/start/dir -type "f" -uid <ID> -perm 111。
我知道这是一个旧的帖子,但最近我必须这样做,而且它仍然相关。
既然我们谈论的是*nix权限,一种繁琐但彻底的方法是查看ID在系统上的成员资格:
例如:
# assuming josh is a member of group "grpname"
find / -user josh -perm -100 # gets files owned by josh & are executable
find / -group grpname -perm -010 # gets files with grp ownership and executable
# via group
# Must be repeated for each group josh is in
find / -perm -001 # gets files executable by any user
access()
系统调用。我编辑了答案,这个解决方案可行。但请记住,ACL 或其他访问模型可能仍会拒绝可执行性(-execute 不会继承此问题)。假设您不使用 ACL 或扩展安全机制,这种方法将运作良好。 - Ionic