Como verificar as permissões de um diretório específico?


315

Eu sei que usando ls -l "directory/directory/filename"me diz as permissões de um arquivo. Como faço o mesmo em um diretório?

Obviamente, eu poderia usar ls -lno diretório mais alto da hierarquia e apenas rolar até encontrá-lo, mas é uma dor. Se eu usar ls -lno diretório real, ele fornecerá as permissões / informações dos arquivos dentro dele, e não do diretório real.

Eu tentei isso no terminal do Mac OS X 10.5 e Linux (Ubuntu Gutsy Gibbon), e é o mesmo resultado. Existe algum tipo de sinalizador que devo usar?

Respostas:


418

Aqui está a resposta curta:

$ ls -ld directory

Aqui está o que ele faz:

-d, --directory
    list directory entries instead of contents, and do not dereference symbolic links

Você pode estar interessado em páginas de manual . É daí que todas as pessoas aqui obtêm respostas legais.

consulte as páginas de manual online


24
Eu acho que a página de manual está mal redigida. Vasculhei cinco vezes antes de começar a pesquisar no Google. Eu não quero o diretório 'entradas' (coisa 'inserida' nos diretórios? Como seus arquivos e subdiretórios?) Nem seu 'conteúdo' (eles soam como o mesmo conceito para mim), quero os próprios diretórios .
— user151841

2
é terminologia completamente padrão, os diretórios próprios são as entradas de diretório, ou seja, as entradas no sistema de arquivos
— alldayremix

33
Pode ser uma terminologia padrão, mas para alguém que provavelmente faria essa pergunta, provavelmente é um jargão confuso.
— CatShoes

60

Você também pode usar o statcomando se desejar informações detalhadas em um arquivo / diretório. (Eu preciso disso quando você diz que está aprendendo ^^)


4
status irá mostrar-lhe entre um monte de coisas permissões: (0755 / drwxr-xr-x)
— ZZAPPER

2
isso é útil para que você possa ver também o formato das permissões numéricas
— desembarcou em

2
"status -c% um diretório" que vai mostrar em forma numérica
— Nerius Jok

2
O correspondente no macOS é stat -f %A dir_or_filename.
— iled 23/08/19

12

Há também

getfacl /directory/directory/

que inclui ACL

Uma boa introdução ao Linux ACL aqui


10

Em GNU / Linux, tente usar ls, namei, getfacl, stat.

Para Dir

[flying@lempstacker ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov  8 15:41 /tmp
[flying@lempstacker ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[flying@lempstacker ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

[flying@lempstacker ~]$ 

ou

[flying@lempstacker ~]$ stat -c "%a" /tmp
1777
[flying@lempstacker ~]$ stat -c "%n %a" /tmp
/tmp 1777
[flying@lempstacker ~]$ stat -c "%A" /tmp
drwxrwxrwt
[flying@lempstacker ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[flying@lempstacker ~]$

Para arquivo

[flying@lempstacker ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov  8 08:31 /tmp/anaconda.log
[flying@lempstacker ~]$ namei -l /tmp/anaconda.log
f: /tmp/anaconda.log
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
-rw-r--r-- root root anaconda.log
[flying@lempstacker ~]$ getfacl /tmp/anaconda.log
getfacl: Removing leading '/' from absolute path names
# file: tmp/anaconda.log
# owner: root
# group: root
user::rw-
group::r--
other::r--

[flying@lempstacker ~]$

ou

[flying@lempstacker ~]$ stat -c "%a" /tmp/anaconda.log
644
[flying@lempstacker ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[flying@lempstacker ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[flying@lempstacker ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[flying@lempstacker ~]$

10

Diretório $ ls -ld

(ls) indica lista de arquivos e diretório.

(-) indica que o arquivo é regular.

(l) indica listagem longa.

(d) indica que o arquivo é um diretório, que é basicamente um tipo especial de arquivo.



5

Além das postagens acima, gostaria de ressaltar que "man ls" fornecerá um bom manual sobre o comando "ls" (List ".

Além disso, o uso de ls -la myFile listará e mostrará todos os fatos sobre esse arquivo.


5

No OS X você pode usar:

ls -lead

A opção e mostra ACLs. E as ACLs são muito importantes para saber quais são as permissões exatas no seu sistema.


2

ls -lstr

Isso mostra a visualização normal do ls com permissões e user: group também

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.