Como posso usar o comando ls para descobrir o proprietário e o grupo de uma pasta e quais são os direitos que cada um possui? [duplicado]

0

Apenas mudei completamente do Windows para o Ubuntu e estou feliz.

Eu tenho um problema; existe uma pasta chamada /root . Eu quero saber como eu poderia usar o comando ls para descobrir o proprietário e o grupo associado a essa pasta e quais são os direitos que cada um deles tem.

    
por Frank 21.01.2018 / 23:54

3 respostas

4

Eu me pergunto por que isso é um "problema". O diretório /root é o diretório inicial do usuário root e geralmente não é necessário fazer nada nele. Consequentemente, ele não possui permissão de execução para usuários normais, o que significa que você não pode inseri-lo ou listar seu conteúdo. Estas não são coisas que você deve mudar, por motivos de segurança.

De qualquer forma, você pode encontrar algumas orientações sobre o uso de um comando executando

man command

Em man ls você encontrará

-d, --directory
       list directories themselves, not their contents

Compare os efeitos:

$ ls /root
ls: cannot open directory '/root': Permission denied
$ sudo !!
sudo ls /root
[sudo] password for zanna: 
snap
$ ls -d /root
/root

Eu preciso de permissão de root (obtida apenas para um comando executando sudo command ) para listar o conteúdo deste diretório, mas não para listar o próprio diretório . Isso porque eu tenho permissão de execução no diretório pai de /root , / (muitas vezes confusamente chamado de diretório raiz, pois é a "raiz" do sistema de arquivos do qual o resto se ramifica).

A grande maioria dos diretórios do seu sistema tem permissão de leitura e execução por padrão. O diretório /root é excepcional em suas permissões restritivas.

Também em man ls é a ferramenta para mostrar as permissões, mas não é de todo óbvio qual delas está lá, então você pode querer tentar executar info ls , que mostra, na seção explicando quais informações cada opção faz com que seja mostrado, a documentação para a opção -l :

‘-l’
‘--format=long’
‘--format=verbose’
     In addition to the name of each file, print the file type, file
     mode bits, number of hard links, owner name, group name, size, and
     timestamp (*note Formatting file timestamps::), normally the
     modification time.  Print question marks for information that
     cannot be determined.

Isso ainda não está muito claro! Você sabia que "bits de modo de arquivo" significa as permissões? O comando chmod é uma abreviação de modo de alteração . Agora você sabe. Então vamos tentar as opções juntos. Anotei a saída:

$ ls -dl /root       #note that the order of options does not matter here
drwx------ 8 root root 4096 Dec 17 14:06 /root
^ ^  ^  ^  ^  ^     ^    ^   ^   ^    ^     ^--file name
| |  |  |  |  |     |    |   |   |    |--last modified time
| |  |  |  |  |     |    |   |   |--day of month
| |  |  |  |  |     |    |   |--name of month *
| |  |  |  |  |     |    |--size
| |  |  |  |  |     |--group
| |  |  |  |  |--owner
| |  |  |  |--number of hard links to this file
| |  |  |--permission bits for "others" (any user/program)
| |  |--permission bits for group
| |--permission bits for owner
|--file type (d=directory)

* Depende das configurações de localidade. Se você usar uma localidade diferente do inglês, poderá obter a saída em inglês de qualquer comando executando LC_ALL=C ls -dl /root

Veja o tag wiki para permissões para informações sobre como interpretar os "bits de modo". ls -l exibe notação simbólica para as permissões, em que r = acesso de leitura, w = acesso de gravação, x = executável e - não indicam permissão. Estes têm efeitos diferentes para diretórios e arquivos regulares. Para diretórios, o acesso de leitura permite que o conteúdo do diretório seja listado se o bit de permissão x também for definido, o x bit permite que o diretório seja inserido e w permita arquivos dentro do diretório a ser excluído, criado e renomeado se o x bit também estiver definido. É útil lembrar que um diretório é um arquivo que armazena uma lista de arquivos - é por isso que você precisa de permissão de gravação no diretório para criar, renomear ou excluir seu conteúdo - essas ações alteram a lista. Essa permissão também permite que você force a gravação de outras alterações nos arquivos dentro do diretório.

Se estivermos interessados apenas em proprietários e permissões, ls -l nos fornecerá muitas informações. Existe um comando mais flexível para mostrar metadados de arquivos; é stat . Você pode usá-lo para listar o proprietário ( %U ) (u para usuário - a maioria dos utilitários de linha de comando chama o proprietário de um arquivo. Em chmod , por exemplo, u = proprietário e o = outros - certifique-se de não dê permissões para o quando você deseja apenas dar a u !), group ( %G ) e listar permissões em notação simbólica ou octal:

$ stat -c "%U %G %a" /root
root root 700
$ stat -c "%U %G %A" /root
root root drwx------

Veja man stat para muitas outras coisas stat pode informá-lo sobre arquivos.

    
por Zanna 22.01.2018 / 11:01
1
ls -dl /root

A opção -d diz que você deseja ver informações no próprio diretório em vez dos arquivos nele contidos.

A opção -l diz para fornecer uma lista longa, ou seja, permissões, proprietário e grupo. As três primeiras permissões são para o proprietário, as segundas três para o grupo e as terceiras três para todas as outras.

    
por jpezz 22.01.2018 / 00:12
1

Para verificar o tipo de permissões na linha de comando:

ls -dl

Isso listará todas as pastas e arquivos do caminho atual em que você está.

no começo de cada linha você verá algumas letras. por exemplo.: exemplo

Primeira letra = tipo de arquivo (aqui d = diretório / pasta) então 3x3 carta para as permissões

  • primeiras 3 letras = permissões do proprietário
  • segundo 3 letras = permissões do grupo
  • terceira 3 letras = permissão de todos os outros

as letras são rwx

  • r = permissão de leitura
  • w = permissão de gravação
  • x = permissão de execução

se houver um - a permissão não está definida / dada

no meu exemplo, o proprietário tem todas as permissões, o grupo e os outros não têm permissão para escrever (mas para ler e executar)

    
por Martin Loeffler 22.01.2018 / 11:55