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?

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


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 ^^)


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


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

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.



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.


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.


2

ls -lstr

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.