我想列出用户或组具有写入权限的所有目录。
我在 ServerFault 上发现了这个问题,但它针对的是 Windows Server,所以我很乐观,Linux 社区中有更好的东西。同时,我意识到这个问题存在递归扭曲,如果没有长时间运行的脚本,它可能无法实现。
我知道以下有用的命令:
cut -d : -f 1 /etc/group cut -d : -f 1 /etc/passwd getent passwd user-name| cut -d: -f 6ls -la但是,当我不知道用户的目的是什么时,最好拉出他们拥有写权限的所有目录的列表,然后从那里开始环顾四周。如果不出意外,它是一个超级有用的审计..
如果这有助于理解我的目的,那么在我们的系统管理员担任新职位后,我继承了(或者至少是照看婴儿?)几个系统。所以我一直在试图了解这两个系统的演变,例如安装了什么软件,在哪里(..呃),各种配置文件所在的位置,以及现在,已经创建了哪些不同的组和用户——包括他们被允许写入的目录。通常我可以在 askubuntu 上找到这样有用的终端命令,但没有找到这个我想我会继续问。
确切的系统是 Ubuntu 10.04.2,但我们也支持 Ubuntu 12.04.5,因此最好是与版本无关的解决方案。在此先感谢您的帮助。
[更新:两个快速答案的初步结果]
值得注意的是,我以 root 身份登录,并且/是我的工作目录。此外,他们花费了相当多的时间来运行。
@Rinzwind 的组合命令在大约 5.5 分钟内得到了以下输出..
root@tatooine:/# sudo find -type d \( \( -user ftpgisdata -perm /u=w \) -o \( -group ftpgisdata -perm /g=w \) -o -perm /o=w …Run Code Online (Sandbox Code Playgroud)