Como posso listar arquivos que o usuário atual pode acessar?

2

Para fins de auditoria de segurança, gostaria de consultar os usuários de meus sistemas e garantir que eles não tenham acesso ao sistema de arquivos a mais do que eu preferiria.

Eu gostaria de algo que produza no formato ls -l , mas apenas para um usuário (e seus grupos):

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

Uma vez que eu tenha uma lista controlada do que um usuário deve ser capaz de ver, eu posso gerar isso novamente para outro usuário e ver como eles diferem. Faz sentido?

Eu quero enfatizar que isso precisa avaliar as permissões naturais, de grupos e até mesmo ACL do usuário atual. Essencialmente, testando cada estágio. Eu não tenho certeza se eu me importo com pedaços pegajosos e coisas assim sobre simples drwx , mas vamos ver para onde isso vai:)

    
por Oli 30.03.2014 / 13:23

1 resposta

2

O melhor que consegui construir até agora é usar os testes do 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 {}"' \;

Uma amostra dessa saída:

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
    
por Oli 30.03.2014 / 13:23