Lista de permissons de usuário para uma pasta específica

1

Como posso obter uma lista de quais usuários estão autorizados para uma pasta e quais permissões eles têm?

Já experimentei os mais comuns como 'ls', 'namei' ou 'getfacl'

    
por LStrike 17.01.2017 / 11:16

3 respostas

1

Quando você

ls -ld */

você obtém uma lista (-l) de seus diretórios (-d) no caminho atual. Você pode ver os direitos de acesso do proprietário, grupo e outros.
Para mais detalhes sobre os direitos de acesso, verifique: Este link - < br> Ao verificar a saída do comando ls , você pode ver o proprietário do arquivo ou diretório e, ao lado dele, o proprietário do grupo do arquivo ou diretório. Se, por exemplo, o grupo for chamado de " logística ", você poderá visualizar os membros desse grupo com o seguinte comando:

grep 'logistics' /etc/group
    
por 17.01.2017 / 11:29
1

Não há como fazer isso com total generalidade. Por exemplo, se o arquivo for exportado por um sistema de arquivos de rede, como NFS ou Samba, você precisará saber sobre contas nos clientes autorizados. Se o arquivo estiver visível através de um servidor web ou FTP, então potencialmente o mundo inteiro poderá acessá-lo.

Mesmo sem envolver outras máquinas (reais ou virtuais), um arquivo pode ter hard link em outro diretório. Uma árvore de diretórios pode estar acessível em algum outro lugar devido a uma montagem de ligação . Um arquivo pode estar localizado em uma imagem de disco na qual alguns usuários também têm acesso direto. E assim por diante.

No caso nominal, em que um arquivo só pode ser acessado por meio de um caminho, um arquivo só é acessível a processos que podem atravessar toda a árvore de diretórios da raiz para esse arquivo. Ou de seu diretório atual para esse arquivo (é incomum, mas possível organizar um processo para ter um diretório atual que não seria capaz de acessar, alterando as permissões do diretório ou diminuindo os privilégios do processo após a operação chdir) - mas estamos nos afastando do caso nominal. Portanto, no caso nominal, escolha os usuários que têm as permissões desejadas no arquivo e remova os usuários que não têm permissão x em nenhum dos diretórios da cadeia que vai da raiz para esse arquivo. Por exemplo, para gravar em /one/two/three , um usuário deve ter permissão x em / , /one e /one/two e deve ter permissão de gravação em /one/two/three .

Para determinar quem tem quais permissões em um arquivo, a maioria das variantes do Unix fornece um comando chamado getfacl . Este comando está disponível no Linux, mas nem sempre faz parte da instalação padrão. Ele lista permissões por usuários e grupos; as permissões de um usuário no arquivo são determinadas pela lista de usuários se o usuário estiver listado explicitamente e, caso contrário, o usuário terá todas as permissões concedidas por qualquer grupo em que o usuário esteja e se o usuário não estiver em nenhum dos grupos listados então o usuário tem o "outro" conjunto de permissões.

Observe que os processos de um usuário nem sempre têm o conjunto exato de grupos conferidos pelas entradas em /etc/group ou bancos de dados de rede semelhantes, mas estamos novamente entrando em territórios de caso de borda. Uma coisa que não é tão importante é que as estruturas de segurança, como o SELinux e o AppArmor, podem adicionar mais restrições. Você pode dizer se essas restrições podem estar em vigor observando a saída de ls -ld /path/to/file : se houver um caractere de pontuação após as permissões, isso indica que as permissões não contam a história completa ( + indica entradas de ACL, . indica um contexto do SELinux que você pode exibir com ls -Z , etc.).

Não conheço uma ferramenta que coleta todas essas informações para você.

    
por 18.01.2017 / 01:41
0

use a opção ls with -d para o diretório:

ls -ld yourDirectory
    
por 17.01.2017 / 11:17