it-swarm.com.de

Unix: Wie prüfe ich die Berechtigungen eines bestimmten Verzeichnisses?

Ich weiß, dass mir mit ls -l "directory/directory/filename" die Berechtigungen einer Datei mitgeteilt werden. Wie mache ich dasselbe in einem Verzeichnis? Ich könnte natürlich ls -l für das Verzeichnis in der Hierarchie verwenden und dann einfach scrollen, bis ich es finde, aber es ist so ein Schmerz. Wenn ich ls -l für das aktuelle 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) ausprobiert, und es ist das gleiche Ergebnis. Gibt es eine Art Flagge, die ich verwenden sollte?

264
user42228

Hier ist die kurze Antwort:

$ ls -ld directory

Folgendes tut es:

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

Möglicherweise interessieren Sie sich für manpages . Hier bekommen alle Menschen hier ihre netten Antworten.

siehe Online-Manpages

364

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

53
Piotr Lesnicki

Es gibt auch

getfacl /directory/directory/

was ACL beinhaltet

Eine gute Einführung in Linux ACL hier

12
Taylan

$ ls -ld Verzeichnis

(ls) gibt eine Liste der Dateien und des Verzeichnisses . (-) an, dass die Datei eine reguläre Datei ist . (l) zeigt eine lange Auflistung . (d) gibt an, dass es sich bei der Datei um ein Verzeichnis handelt, bei dem es sich im Wesentlichen um eine spezielle Art von Datei handelt.

7
Mehul Jariwala

Versuchen Sie in GNU/Linux, ls, namei, getfacl, stat zu verwenden.

Für Dir

[[email protected] ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov  8 15:41 /tmp
[[email protected] ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[[email protected] ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

[[email protected] ~]$ 

oder

[[email protected] ~]$ stat -c "%a" /tmp
1777
[[email protected] ~]$ stat -c "%n %a" /tmp
/tmp 1777
[[email protected] ~]$ stat -c "%A" /tmp
drwxrwxrwt
[[email protected] ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[[email protected] ~]$

Für datei

[[email protected] ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov  8 08:31 /tmp/anaconda.log
[[email protected] ~]$ 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
[[email protected] ~]$ 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--

[[email protected] ~]$

oder

[[email protected] ~]$ stat -c "%a" /tmp/anaconda.log
644
[[email protected] ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[[email protected] ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[[email protected] ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[[email protected] ~]$
6
user7040344

Unter OS X können Sie Folgendes verwenden:

ls -lead

Die Option e zeigt ACLs an. ACLs sind sehr wichtig, um die genauen Berechtigungen für Ihr System zu kennen.

5
Tony Topper

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

Bei Verwendung von ls -la myFile werden alle Fakten zu dieser Datei aufgelistet und angezeigt.

5
Filip Ekberg

ls -lstr

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

1
user2201302

Dies zeigt Dateien mit ihren Berechtigungen an

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