Questo articolo spiega come utilizzare ls
comando per verificare i permessi dei file Linux®. Essere in grado di controllare i permessi su un file è utile, soprattutto per la risoluzione dei problemi. Puoi assicurarti che un utente possa leggere un particolare file, ad esempio, o esaminare una struttura di directory per assicurarti che gli utenti possano seguire la gerarchia dei file di cui hanno bisogno.
Per una discussione più approfondita sui permessi dei file Linux, vedere Concetti sui permessi dei file Linux.
ls comando
Usa ls
comando (la prima lettera è una L minuscola) per vedere quali file sono in una directory. Quando viene eseguito da solo, ls
restituisce un elenco della directory di lavoro corrente. È inoltre possibile specificare una directory da elencare. L'esempio seguente mostra un elenco dei primi file in /etc
directory su un sistema Gentoo.
$ ls /etc
DIR_COLORS gentoo-release man.conf runlevels
adjtime gpm mime.types sandbox.conf
apache2 group mke2fs.conf sandbox.d
bash group- modprobe.d scsi_id.config
ca-certificates host.conf modules.autoload.d securetty
ca-certificates.conf hosts modprobe.d scsi_id.config
...
ls -h
Il -h
l'opzione cambia il modo in cui vengono visualizzate le dimensioni dei file. Quando si utilizza l'opzione -h, le dimensioni dei file vengono visualizzate nel formato leggibile dall'uomo di kilobyte, megabyte e così via, anziché in byte non elaborati. Altri strumenti Linux come df
supporta anche questa bandiera. Il comando df -h
mostra l'utilizzo attuale del disco in un formato più facile da leggere.
ls -a
Per visualizzare i file nascosti (file con nomi che iniziano con un punto), usa il -a
opzione. Ad esempio, se utilizzi solo ls
per guardare la home directory di root su un'installazione Linux pulita, non vengono restituiti file:
$ ls /root
Tuttavia, se aggiungi il -a
opzione, il ls
il comando restituisce un elenco di file:
$ ls -a /root
. .. .bash_history .bashrc .profile .viminfo
I file che iniziano con un punto sono spesso file di sistema e file di impostazioni delle applicazioni e di solito non li vuoi inclusi negli elenchi di directory. Ma è importante sapere che ci sono e come vederli. Il .bashrc
è particolarmente utile sapere perché contiene le impostazioni dell'ambiente utente che puoi modificare.
Se combini -a
opzione con -l
opzione (vedi la prossima sezione) in-la
, ottieni tutti i dettagli dei file nascosti:
$ ls -la /root
total 24
drwxr-xr-x 2 root root 4096 2009-12-16 01:10 .
drwxr-xr-x 23 root root 4096 2010-02-18 10:14 ..
-rw------- 1 root root 123 2010-01-21 15:49 .bash_history
-rw-r--r-- 1 root root 2227 2007-10-20 11:51 .bashrc
-rw-r--r-- 1 root root 141 2007-10-20 11:51 .profile
-rw------- 1 root root 868 2009-12-16 00:47 .viminfo
Considera il punto singolo e il punto doppio in entrambi gli elenchi di directory:
-
Il punto singolo (.) si riferisce alla directory stessa. Questo è comodo se vuoi che esegua un comando e faccia riferimento alla tua directory corrente (ad esempio, quando vuoi copiare un file lì).
-
Il doppio punto (..) si riferisce alla directory padre. Se digiti
cd ..
la directory cambia in quella sopra quella in cui ti trovi, nella gerarchia del file system. Ad esempio, se la tua directory corrente è/root
,digitandocd ..
ti porterebbe a/
, il massimo della gerarchia.
ls -l
Per ottenere maggiori informazioni sui file in una directory, usa -l
opzione con ls, come mostrato nell'esempio seguente.
$ ls -l /etc
total 492
-rw-r--r-- 1 root root 4468 Nov 19 2009 DIR_COLORS
-rw-r--r-- 1 root root 10 Jun 30 03:29 adjtime
drwxr-xr-x 4 root root 4096 Jun 30 03:44 apache2
drwxr-xr-x 2 root root 4096 Nov 19 2009 bash
drwxr-xr-x 3 root root 4096 Nov 19 2009 ca-certificates
-rw-r--r-- 1 root root 5955 Nov 19 2009 ca-certificates.conf
drwxr-xr-x 2 root root 4096 Jul 5 20:37 conf.d
drwxr-xr-x 2 root root 4096 Dec 3 2009 cron.d
drwxr-x--- 2 root root 4096 Dec 3 2009 cron.daily
-rw-r--r-- 1 root root 220 Dec 3 2009 cron.deny
drwxr-x--- 2 root root 4096 Dec 3 2009 cron.hourly
drwxr-x--- 2 root root 4096 Dec 3 2009 cron.monthly
drwxr-x--- 2 root root 4096 Dec 3 2009 cron.weekly
-rw-r--r-- 1 root root 611 Dec 3 2009 crontab
...
I nomi dei file si trovano all'estrema destra di ogni riga e i dettagli dei file precedono i nomi. I dettagli necessari per controllare i permessi dei file sono (1) la serie di lettere e trattini all'estrema sinistra di ogni riga e (2) le due colonne che hanno root
in essi (nell'esempio precedente). Il resto di questo articolo spiega come interpretare e utilizzare questi dettagli.
Dettagli dell'autorizzazione
Questa sezione spiega la serie di lettere e trattini che definiscono i permessi del file.
Il primo carattere:tipo di file
Negli esempi precedenti, il primo carattere di ogni elenco era il trattino (-) o la lettera d
.
-
Un trattino (-) indica che il file è un file normale.
-
La lettera
d
indica che il file è una directory, che è fondamentalmente un tipo speciale di file.
Un tipo di file speciale che potresti vedere è un collegamento simbolico, a volte chiamato collegamento software. Inizia con una L
minuscola , come mostrato nell'esempio seguente:
lrwxrwxrwx 1 root root 4 Jun 30 03:29 sh -> bash
Un collegamento simbolico è un puntatore a un'altra posizione nel file system.
Abbreviazioni di autorizzazioni
Le autorizzazioni per i file sono rappresentate dalle seguenti lettere.
r
fa riferimento al permesso di lettura.w
si riferisce al permesso di scrittura.x
si riferisce al permesso di esecuzione.
I caratteri delle autorizzazioni
Considera il seguente esempio:
drwxrwxr-x 2 root mail 4096 Dec 3 2009 mail
Il primo trio di lettere dopo il tipo di file in un elenco di file (rwx
) mostra i permessi per l'user
, o il proprietario del file.
Il prossimo trio di caratteri (anche rwx
) mostra le autorizzazioni per ilgroup
categoria.
L'ultimo trio di caratteri (r-x
) mostra i permessi per la categoria finale, other
. In questo esempio, gli utenti che non sono né il proprietario del file né il gruppo hanno i permessi di lettura ed esecuzione ma non di scrittura, come indicato dal trattino (-) nella posizione centrale.
Nota l'ordine specifico delle autorizzazioni in un trio:leggi, scrivi, esegui. Un trattino al posto di una lettera per un'autorizzazione significa che la categoria non dispone di tale autorizzazione.
Il primo numero
Il numero elencato dopo le autorizzazioni indica il numero di collegamenti di un file o il numero di voci di directory contenute, per una directory. Questo numero non è rilevante per le autorizzazioni.
Proprietario e gruppo
Dopo il numero di collegamenti, vengono elencati due nomi. Nell'esempio precedente, i nomi sono root
e mail
.
Il nome indica il proprietario del file. L'user
le autorizzazioni si applicano al proprietario del file, quindi in questo caso l'utente "root" ha le autorizzazioni di lettura, scrittura ed esecuzione per questa directory.
Il secondo nome è il gruppo del file. Il group
le autorizzazioni si applicano a qualsiasi utente nello stesso gruppo del file, quindi in questo caso, tali autorizzazioni si applicano a chiunque si trovi nella mail
gruppo.
Il resto
Il resto dei dettagli del file sono la dimensione del file, la data e l'ora in cui il file è stato creato o modificato l'ultima volta e il nome del file.