English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il sistema Linux è un sistema multiutente tipico, in cui diversi utenti si trovano in posizioni diverse e hanno permessi diversi.
Per proteggere la sicurezza del sistema, il sistema Linux ha fatto diverse specifiche per i permessi di accesso degli utenti allo stesso file (inclusi i file di directory).
In Linux, di solito utilizziamo due comandi per modificare l'utente e i permessi di un file o di una directory:
chown (change ownerp): Modifica l'utente e il gruppo di appartenenza.
chmod (change mode): Modifica i permessi dell'utente.
Nell'immagine sottostante, l'autorizzazione dell'utente è fornita tramite chown, la configurazione dei permessi dell'utente tramite chmod.
In Linux, possiamo utilizzare i comandi ll o ls –l per visualizzare le attributi del file e l'utente e il gruppo di appartenenza del file, come:
[root@www ~]# ls -l totale 64 dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot ...
Nell'esempio di seguito,bin Il primo attributo del file è rappresentato da d. d in Linux rappresenta che il file è un file di directory.
In Linux, il primo carattere rappresenta se il file è una directory, un file o un link file ecc.
Quando è d, è una directory
Quando è -, è un file;
Se è l, rappresenta un documento di link (link file);
Se è b, rappresenta un'interfaccia di dispositivo di file di sistema utilizzabile per l'archiviazione (dispositivo di accesso casuale);
Se è c, rappresenta un dispositivo di file di sistema di porta seriale, ad esempio tastiera, mouse (dispositivo di lettura una tantum).
Nei caratteri successivi, in gruppi di tre, e sono combinazioni dei tre parametri rwx. In cui, r rappresenta leggibile (read), w rappresenta scrivibile (write), x rappresenta eseguibile (execute). È importante notare che la posizione di questi tre permessi non cambia, se non ci sono permessi, appare un trattino - semplicemente.
Ogni attributo del file è determinato dai primi 10 caratteri (come illustrato nell'immagine).
Da sinistra a destra utilizzando 0-9 Questi numeri per rappresentare.
Il bit 0 Il carattere determina il tipo di file, il 1-3 Il carattere determina il proprietario (il proprietario del file) che ha i permessi del file.
I primi 4-6 caratteri determinano il gruppo di appartenenza (gli utenti dello stesso gruppo del proprietario) che hanno i permessi del file, i caratteri dal 7 al 9 determinano i permessi degli altri utenti del file.
Tra cui, il numero 1, 4, 7 rappresenta il permesso di lettura, se rappresentato dal carattere r, allora ha il permesso di lettura, se rappresentato dal carattere -, allora non ha il permesso di lettura;
Il bit 2, 5, 8 Un bit rappresenta il permesso di scrittura, se rappresentato dal carattere w, allora ha il permesso di scrittura, se rappresentato dal carattere -, allora non ha il permesso di scrittura; 3, 6, 9 Un bit rappresenta il permesso esecutivo, se rappresentato dal carattere x, allora ha il permesso di esecuzione, se rappresentato dal carattere -, allora non ha il permesso di esecuzione.
[root@www ~]# ls -l totale 64 drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql ...
Per i file, c'è sempre un proprietario specifico, che è l'utente che ha il diritto di proprietà del file.
Allo stesso tempo, nel sistema Linux, gli utenti sono classificati per gruppo, un utente appartiene a un gruppo o più gruppi.
Oltre agli utenti proprietari del file, gli utenti possono essere divisi in utenti dello stesso gruppo del proprietario e altri utenti.
Quindi, il sistema Linux assegna diversi permessi di accesso ai file in base al proprietario del file, agli utenti dello stesso gruppo del proprietario e agli altri utenti.
Nell'esempio sopra, il file mysql è un file directory, il proprietario e il gruppo sono mysql, il proprietario ha i permessi di lettura, scrittura ed esecuzione; gli altri utenti dello stesso gruppo del proprietario hanno i permessi di lettura ed esecuzione; gli altri utenti hanno i permessi di lettura ed esecuzione.
Per l'utente root, di solito, i permessi del file non hanno alcun effetto.
Sintassi:
chgrp [-R] nome_gruppo nome_file
Opzioni dei parametri
-R: cambia ricorsivamente il gruppo del file, ossia quando si cambia il gruppo di un file nella directory, se si aggiunge il parametro -R, allora il gruppo di tutti i file nella directory verrà cambiato.
Sintassi:
chown [–R] nome_utente nome_file chown [-R] nome_utente:nome_gruppo nome_file
Entra nella directory /root (~) e cambia il proprietario di install.log al conto bin:
[root@www ~] cd ~ [root@www ~]# chown bin install.log [root@www ~]# ls -l -rw-r--r-- 1 bin users 68495 Giu 25 08:53 install.log
Modifica il proprietario e il gruppo di install.log al root:
[root@www ~]# chown root:root install.log [root@www ~]# ls -l -rw-r--r-- 1 root root 68495 Giu 25 08:53 install.log
Ci sono due metodi per impostare le proprietà dei file di Linux, uno è numerico e l'altro è simbolico.
I permessi di base dei file di Linux hanno nove, che sono owner/group/others (proprietario/gruppo/altro) Ogni identità ha il proprio read/write/execute Permesso.
Riassumiamo i dati menzionati prima: i caratteri di permesso del file sono: -rwxrwxrwx, questi nove permessi sono raggruppati in gruppi di tre! Possiamo utilizzare numeri per rappresentare ciascun permesso, la tabella di corrispondenza dei punteggi di ciascun permesso è come segue:
r:4
w:2
x:1
Per ogni identità (owner/group/others), ciascun dei tre permessi (r/w/x) deve essere sommato. Ad esempio, quando i permessi sono: -rwxrwx---, il punteggio è:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
Quindi quando impostiamo la modifica dei permessi, il numero di permessi del file è 770.La sintassi dell'istruzione di modifica dei permessi chmod è la seguente:
chmod [-R] xyz file o directory
Opzioni e parametri:
xyz : È l'attributo di permesso numerico menzionato prima, che è la somma del valore numerico dell'attributo rwx.
-R : Effettua una modifica continua ricorsiva (recursive), ossia include anche tutti i file nella sottodirectory
Per esempio, se si desidera impostare tutti i permessi del file .bashrc, il comando è come segue:
[root@www ~]# ls -al .bashrc -rw-r--r-- 1 root root 395 Lug 4 11:45 .bashrc [root@www ~]# chmod 777 .bashrc [root@www ~]# ls -al .bashrc -rwxrwxrwx 1 root root 395 Lug 4 11:45 .bashrc
Quindi se si desidera convertire i permessi in -rwxr-xr-- allora? Quindi il punteggio dei permessi diventa [4+2+1][4+0+1][4+0+0]=754.
Esiste anche un altro metodo per modificare i permessi, come possiamo vedere nell'introduzione precedente, ci sono in totale nove permessi, che sono:
user:utente
group:gruppo
others:altri
Quindi possiamo usare u, g, o per rappresentare i permessi di tre identità.
Inoltre, a rappresenta allovvero tutte le identità. I permessi di lettura e scrittura possono essere scritti come r, w, x, ossia possono essere visualizzati nel modo seguente:
chmod | u g o a | (aggiungere) -(rimuovere) =(impostare) | r w x | File o directory |
Se dobbiamo impostare i permessi del file: -rwxr-xr-- Puoi usare chmod u=rwx,g=rx,o=r nomefile per impostare:
# touch test1 // Crea il file test1 # ls -al test1 // Visualizza i permessi predefiniti di test1 -rw-r--r-- 1 root root 0 Nov 15 10:32 test1 # chmod u=rwx,g=rx,o=r test1 // Modifica i permessi di test1 # ls -al test1 -rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
E se si desidera rimuovere i permessi senza modificare altri permessi esistenti? Ad esempio, se si desidera rimuovere i permessi esecutivi di tutti, allora:
# chmod a-x test1 # ls -al test1 -rw-r--r-- 1 root root 0 Nov 15 10:32 test1