Comment vérifier les autorisations d'un répertoire spécifique?

316

Je sais que l'utilisation ls -l "directory/directory/filename"m'indique les autorisations d'un fichier. Comment faire la même chose sur un répertoire?

Je pourrais évidemment utiliser ls -lsur le répertoire plus haut dans la hiérarchie, puis faire défiler jusqu'à ce que je le trouve, mais c'est vraiment pénible. Si j'utilise ls -lsur le répertoire réel, il donne les autorisations / informations des fichiers à l'intérieur, et non du répertoire réel.

J'ai essayé cela dans le terminal de Mac OS X 10.5 et Linux (Ubuntu Gutsy Gibbon), et c'est le même résultat. Y a-t-il une sorte de drapeau que je devrais utiliser?

user42228
la source

Réponses:

419

Voici la réponse courte:

$ ls -ld directory

Voici ce qu'il fait:

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

Vous pourriez être intéressé par les pages de manuel . C'est de là que tous les gens d'ici obtiennent leurs belles réponses.

se référer aux pages de manuel en ligne

Johannes Schaub - litb
la source
24
Je pense que la page de manuel est mal formulée. Je l'ai parcouru cinq fois avant de commencer à googler. Je ne veux pas d '«entrées» de répertoire (chose «entrée» dans des répertoires? Comme leurs fichiers et sous-répertoires?) Ni leur «contenu» (ils ressemblent au même concept pour moi), je veux les répertoires eux-mêmes .
user151841
2
c'est une terminologie complètement standard, les répertoires eux - mêmes sont les entrées du répertoire, c'est-à-dire les entrées dans le système de fichiers
alldayremix
33
C'est peut-être une terminologie standard, mais pour quelqu'un qui poserait probablement une telle question, c'est probablement un jargon déroutant.
CatShoes
61

Vous pouvez également utiliser la statcommande si vous souhaitez des informations détaillées sur un fichier / répertoire. (Je précise cela lorsque vous dites que vous apprenez ^^)

Piotr Lesnicki
la source
5
stat vous montrera parmi beaucoup de choses les permissions: (0755 / drwxr-xr-x)
zzapper
3
c'est pratique pour que vous puissiez aussi voir le format des autorisations numériques - ty
débarqué le
2
"stat -c% a directory" ceci s'affichera de manière numérique
Nerius Jok
2
Le correspondant sur macOS est stat -f %A dir_or_filename.
iled
13

Il y a aussi

getfacl /directory/directory/

qui comprend ACL

Une bonne introduction sur Linux ACL ici

Taylan
la source
11
$ ls -ld directory

ls est la commande list.

- indique le début des options de commande.

l demande une longue liste qui inclut les autorisations.

dindique que la liste doit concerner le répertoire nommé lui-même; pas son contenu. Si aucun nom de répertoire n'est donné, la sortie de la liste appartiendra au répertoire courant.

Mehul Jariwala
la source
10

Dans GNU / Linux, essayez d'utiliser ls, namei, getfacl, stat.

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

Pour fichier

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

la source
7

Cela affiche les fichiers avec ses autorisations

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

En plus des articles ci-dessus, je voudrais souligner que "man ls" vous donnera un bon manuel sur la commande "ls" (List ").

De plus, l'utilisation de ls -la myFile listera et affichera tous les faits concernant ce fichier.

Filip Ekberg
la source
5

Sous OS X, vous pouvez utiliser:

ls -lead

L'option e affiche les ACL. Et les ACL sont très importantes pour savoir quelles sont les autorisations exactes sur votre système.

Tony Topper
la source
2

ls -lstr

Cela montre la vue ls normale avec les autorisations et user: group ainsi

user2201302
la source