¿Cómo verificar los permisos de un directorio específico?

316

Sé que usar ls -l "directory/directory/filename"me dice los permisos de un archivo. ¿Cómo hago lo mismo en un directorio?

Obviamente, podría usar ls -len el directorio más alto en la jerarquía y luego simplemente desplazarme hasta encontrarlo, pero es un dolor. Si lo uso ls -len el directorio real, da los permisos / información de los archivos dentro de él, y no del directorio real.

Probé esto en el terminal de Mac OS X 10.5 y Linux (Ubuntu Gutsy Gibbon), y es el mismo resultado. ¿Hay algún tipo de bandera que debería estar usando?

usuario42228
fuente

Respuestas:

419

Aquí está la respuesta corta:

$ ls -ld directory

Esto es lo que hace:

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

Quizás te interesen las páginas de manual . Ahí es donde todas las personas aquí obtienen sus buenas respuestas.

consulte las páginas de manual en línea

Johannes Schaub - litb
fuente
24
Creo que la página del manual está mal redactada. Lo rastreé cinco veces antes de empezar a buscar en Google. No quiero 'entradas' de directorio (¿'cosa' ingresada 'en directorios? ¿Como sus archivos y subdirectorios?) Ni sus' contenidos '(me parecen el mismo concepto), quiero los directorios mismos .
user151841
2
es una terminología completamente estándar, los directorios en son las entradas del directorio, es decir, las entradas en el sistema de archivos
alldayremix
33
Puede ser una terminología estándar, pero para alguien que probablemente haría esa pregunta, probablemente sea una jerga confusa.
CatShoes
61

También puede usar el statcomando si desea información detallada sobre un archivo / directorio. (Preciso esto mientras dices que estás aprendiendo ^^)

Piotr Lesnicki
fuente
55
stat te mostrará entre muchas cosas permisos: (0755 / drwxr-xr-x)
zzapper
3
esto es útil para que pueda ver el formato de permisos numéricos también
aterrizó el
2
"stat -c% un directorio" esto se mostrará en forma numérica
Nerius Jok
2
El correspondiente en macOS es stat -f %A dir_or_filename.
iled
13

También hay

getfacl /directory/directory/

que incluye ACL

Una buena introducción sobre Linux ACL aquí

Taylan
fuente
10

En GNU / Linux, trata de 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 ~]$ 

o

[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 archivo

[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 ~]$

o

[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 ~]$

fuente
10

Directorio $ ls -ld

(ls) indica una lista de archivos y directorio.

(-) indica que el archivo es un archivo normal.

(l) indica una lista larga.

(d) indica que el archivo es un directorio, que es básicamente un tipo especial de archivo.

Mehul Jariwala
fuente
7

Esto muestra archivos con sus permisos

stat -c '%a - %n' directory/*
Brandon Aguilar
fuente
5

Además de las publicaciones anteriores, me gustaría señalar que "man ls" le dará un buen manual sobre el comando "ls" (Lista).

Además, el uso de ls -la myFile enumerará y mostrará todos los datos sobre ese archivo.

Filip Ekberg
fuente
5

En OS X puedes usar:

ls -lead

La opción e muestra ACL. Y las ACL son muy importantes para saber cuáles son los permisos exactos en su sistema.

Tony Topper
fuente
2

ls -lstr

Esto muestra la vista normal de ls con permisos y user: group también

usuario2201302
fuente