Come controllare le autorizzazioni di una directory specifica?


315

So che l'utilizzo ls -l "directory/directory/filename"mi dice le autorizzazioni di un file. Come faccio a fare lo stesso in una directory?

Potrei ovviamente usare ls -lla directory più in alto nella gerarchia e quindi scorrere fino a trovarla, ma è un tale dolore. Se uso ls -lnella directory effettiva, fornisce le autorizzazioni / informazioni dei file al suo interno e non della directory effettiva.

Ho provato questo nel terminale di Mac OS X 10.5 e Linux (Ubuntu Gutsy Gibbon), ed è lo stesso risultato. C'è una specie di bandiera che dovrei usare?

Risposte:


418

Ecco la risposta breve:

$ ls -ld directory

Ecco cosa fa:

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

Potresti essere interessato a pagine man . Ecco da dove tutte le persone qui ricevono le loro belle risposte.

fare riferimento alle pagine man online


24
Penso che la pagina man sia mal formulata. L'ho setacciato cinque volte prima di iniziare a cercare su Google. Non voglio le "voci" della directory (cosa "immessa" nelle directory? Come i loro file e sottodirectory?) Né i loro "contenuti" (mi sembrano lo stesso concetto), voglio le directory stesse .
user151841

2
è una terminologia completamente standard, le directory stesse sono le voci della directory, cioè le voci nel filesystem
alldayremix

33
Potrebbe essere una terminologia standard, ma per qualcuno che probabilmente farebbe una domanda del genere, è probabilmente un gergo confuso.
CatShoes,

60

Puoi anche usare il statcomando se vuoi informazioni dettagliate su un file / directory. (Preciso questo mentre dici che stai imparando ^^)


4
stat ti mostrerà un sacco di cose permessi: (0755 / drwxr-xr-x)
zzapper

2
questo è utile in modo da poter vedere anche il formato dei permessi numerici - ty
sbarcato l'

2
"stat -c% a directory" questo mostrerà in modo numerico
Nerius Jok

2
Il corrispondente su macOS è stat -f %A dir_or_filename.
ILED

12

C'è anche

getfacl /directory/directory/

che include ACL

Una buona introduzione su ACL Linux qui


10

In GNU / Linux, provare a utilizzare ls, namei, getfacl, stat.

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

o

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

Per il file

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

o

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

10

$ ls -ld directory

(ls) indica un elenco di file e directory.

(-) indica che il file è un file normale.

(l) indica un elenco lungo.

(d) indica che il file è una directory, che è fondamentalmente un tipo speciale di file.


7

Questo visualizza i file con le sue autorizzazioni

stat -c '%a - %n' directory/*

5

Oltre ai post precedenti, vorrei sottolineare che "man ls" ti darà un bel manuale sul comando "ls" (Elenco ".

Inoltre, usando ls -la myFile verranno elencati e mostrati tutti i fatti relativi a quel file.


5

Su OS X puoi usare:

ls -lead

L'opzione e mostra gli ACL. E gli ACL sono molto importanti per sapere quali sono le autorizzazioni esatte sul tuo sistema.


2

ls -lstr

Questo mostra la normale vista ls con permessi e anche user: group

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.