Вопрос Как я могу перечислить файлы, к которым может обратиться текущий пользователь?


Для целей аудита безопасности я хотел бы пройти через пользователей своих систем и убедиться, что у них нет доступа к файловой системе больше, чем я предпочел бы.

Я хотел бы что-то, что выйдет в ls -l формат, но только для одного пользователя (и их групп):

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

Как только у меня есть проверенный список того, что пользователь должен быть в состоянии видеть, я могу сгенерировать это снова для другого пользователя и посмотреть, как они отличаются. Имеют смысл?

Я хочу подчеркнуть, что это необходимо для оценивать текущие права пользователя, группы и даже разрешения ACL. По существу тестируйте каждый этап. Я не уверен, забочусь ли я о липких битах и ​​тому подобных вещах drwx но посмотрим, где это будет :)


2
2018-03-30 11:23


происхождения




ответы:


Самое лучшее, что я смог построить до сих пор, это использовать тесты 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

2
2018-03-30 11:23



Хорошо, вы могли бы использовать -readable пропустить [[ -w {} ]] по крайней мере, тест. - terdon♦