web-dev-qa-db-fra.com

Unix: Comment vérifier les permissions d'un répertoire spécifique?

Je sais que l'utilisation de ls -l "directory/directory/filename" m'indique les autorisations d'un fichier. Comment puis-je faire la même chose sur un répertoire? Je pourrais évidemment utiliser ls -l sur le répertoire situé plus haut dans la hiérarchie, puis faire défiler l'écran jusqu'à ce que je le trouve, mais c'est tellement pénible. Si j'utilise ls -l sur le répertoire réel, il donne les permissions/informations des fichiers qu'il contient, 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?

264
user42228

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 pages de manuel . C’est d’où toutes les personnes ici obtiennent leurs bonnes réponses.

reportez-vous à pages de manuel en ligne

364

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

53
Piotr Lesnicki

Il y a aussi

getfacl /directory/directory/

qui comprend ACL

Une bonne introduction sur Linux ACL ici

12
Taylan

$ ls -ld répertoire

(ls) indique la liste des fichiers et le répertoire .(-) indique qu'il s'agit d'un fichier normal .(l) indique une longue liste . (d) indique que le fichier est un répertoire, qui est essentiellement un type de fichier spécial.

7
Mehul Jariwala

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 ~]$
6
user7040344

Sur OS X, vous pouvez utiliser:

ls -lead

L'option e affiche les ACL. Et les listes de contrôle d'accès sont très importantes pour savoir quelles sont les autorisations exactes sur votre système.

5
Tony Topper

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

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

5
Filip Ekberg

ls -lstr

Ceci montre la vue ls normale avec les permissions et utilisateur: groupe aussi

1
user2201302

Cela affiche les fichiers avec leurs permisions

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