如何列出当前用户可以访问的文件?

如何列出当前用户可以访问的文件?

出于安全审计的目的,我想检查我的系统的用户,并确保他们没有超过我希望的文件系统访问权限。

我想要一些以ls -l类似格式输出的内容,但仅针对一个用户(及其组):

r-x /var
r-x /var/spool
r-x /var/spool/cron
--T /var/spool/cron/atjobs

一旦我获得了经过审查的用户列表应该能够看到,我可以为其他用户再次生成此文件,并查看它们有何不同。有意义吗?

我想强调的是,这需要评价当前用户的自然权限、组权限甚至 ACL 权限。本质上是测试每个阶段。我不确定我是否关心粘性位和类似的东西,drwx但我们会看看这会走向何方 :)

答案1

到目前为止我所能构建的最好的东西是使用 bash 的测试:

find . -exec bash -c 'd=-;r=-;w=-;x=-; [[ -d {} ]] && d=d; [[ -r {} ]] && r=r; [[ -w {} ]] && w=w; [[ -x {} ]] && x=x; echo "$d$r$w$x {}"' \;

输出示例:

drwx ./dlls/mscoree/tests
-r-- ./dlls/mscoree/tests/metahost.o
-rw- ./dlls/mscoree/tests/metahost.c
-r-x ./dlls/mscoree/tests/mscoree_test-stripped.exe.so
-r-- ./dlls/mscoree/tests/testlist.c
-rw- ./dlls/mscoree/tests/Makefile.in
-r-- ./dlls/mscoree/tests/debugging.o

相关内容