Wie überprüfe ich die Berechtigungen eines bestimmten Verzeichnisses?

315

Ich weiß, dass using ls -l "directory/directory/filename"mir die Berechtigungen einer Datei mitteilt. Wie mache ich dasselbe in einem Verzeichnis?

Ich könnte natürlich ls -ldas Verzeichnis höher in der Hierarchie verwenden und dann einfach scrollen, bis ich es finde, aber es ist so ein Schmerz. Wenn ich ls -ldas tatsächliche Verzeichnis verwende, werden die Berechtigungen / Informationen der darin enthaltenen Dateien und nicht des tatsächlichen Verzeichnisses angegeben.

Ich habe dies im Terminal von Mac OS X 10.5 und Linux (Ubuntu Gutsy Gibbon) versucht, und es ist das gleiche Ergebnis. Gibt es eine Art Flagge, die ich verwenden sollte?

user42228
quelle

Antworten:

418

Hier ist die kurze Antwort:

$ ls -ld directory

Folgendes macht es:

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

Sie könnten an Manpages interessiert sein . Hier bekommen alle Leute hier ihre netten Antworten.

Weitere Informationen finden Sie in den Online-Manpages

Johannes Schaub - litb
quelle
24
Ich denke, die Manpage ist schlecht formuliert. Ich habe es fünf Mal gesäubert, bevor ich anfing zu googeln. Ich möchte weder Verzeichniseinträge (Dinge, die in Verzeichnisse eingegeben wurden? Wie ihre Dateien und Unterverzeichnisse?) Noch ihren Inhalt (sie klingen für mich wie das gleiche Konzept), ich möchte die Verzeichnisse selbst .
user151841
2
Es ist eine völlig normale Terminologie, die Verzeichnisse selbst sind die Verzeichniseinträge, dh Einträge im Dateisystem
alldayremix
33
Es mag eine Standardterminologie sein, aber für jemanden, der wahrscheinlich eine solche Frage stellt, ist es wahrscheinlich verwirrender Jargon.
CatShoes
60

Sie können den statBefehl auch verwenden, wenn Sie detaillierte Informationen zu einer Datei / einem Verzeichnis wünschen. (Ich präzise das, wenn du sagst, dass du lernst ^^)

Piotr Lesnicki
quelle
4
stat zeigt Ihnen unter vielen Dingen Berechtigungen: (0755 / drwxr-xr-x)
zzapper
2
dies praktisch ist , so dass Sie die numerische Berechtigungen Format als auch sehen - ty
landete
2
"stat -c% a directory" wird auf numerische Weise
angezeigt
2
Das entsprechende unter macOS ist stat -f %A dir_or_filename.
iled
12

Es gibt auch

getfacl /directory/directory/

welches ACL einschließt

Eine gute Einführung in Linux ACL hier

Taylan
quelle
10

In GNU / Linux, versuchen zu verwenden ls, namei, getfacl,stat .

Für 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 ~]$ 

oder

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

Für Datei

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

oder

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

quelle
9

$ ls -ld Verzeichnis

(ls) gibt die Liste der Dateien und des Verzeichnisses an.

(-) gibt an, dass die Datei eine reguläre Datei ist.

(l) zeigt eine lange Auflistung an.

(d) gibt an, dass die Datei ein Verzeichnis ist, bei dem es sich im Grunde um eine spezielle Art von Datei handelt.

Mehul Jariwala
quelle
7

Dies zeigt Dateien mit ihren Berechtigungen an

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

Zusätzlich zu den oben genannten Beiträgen möchte ich darauf hinweisen, dass "man ls" Ihnen ein schönes Handbuch über den Befehl "ls" (List "gibt.

Wenn Sie ls -la myFile verwenden, werden alle Fakten zu dieser Datei aufgelistet und angezeigt.

Filip Ekberg
quelle
5

Unter OS X können Sie Folgendes verwenden:

ls -lead

Die Option e zeigt ACLs an. Und ACLs sind sehr wichtig, um die genauen Berechtigungen auf Ihrem System zu kennen.

Tony Topper
quelle
2

ls -lstr

Dies zeigt die normale ls-Ansicht mit Berechtigungen und Benutzer: Gruppe

user2201302
quelle