Questo articolo spiega i tipi di base delle autorizzazioni di directory, come funzionano e come verificarle.
Cosa sono le autorizzazioni di directory e come si applicano?
In Linux®, una directory è una cartella in cui vengono archiviati i file. Ogni file o directory specifica quali utenti possono accedervi. Questo articolo spiega come impostare le autorizzazioni ed eventualmente sovrascriverle.
Sovrascrivi esempi:
- Se sei un chrooted/incarcerato utente, puoi accedere solo ai file o alle directory in cui sei incarcerato.
- Se hai sudo/root -level autorizzazioni, puoi ignorare i permessi di file o directory.
Elenca file e directory
Questa sezione contiene esempi sulle operazioni sugli elenchi di Linux.
-
Elenca solo i nomi di file e directory:
# ls
-
Elenca i file e le directory con molte più informazioni:
# ls -l # ll
-
Elenca i file e le directory e mostra tutti i file nascosti:
# ls -a
Nota: I file nascosti sono spesso file di configurazione che il sistema nasconde per tenerli al sicuro.
-
Elenca i file e le directory con molte più informazioni e con le dimensioni in KB o GB anziché in bit:
# ls -lh
Capire i risultati
Quando usi -l
, ogni file o directory dovrebbe fornire le seguenti informazioni:
drwxr-xr-x. | jdoe | apache | 3864 | 8 maggio 2021 | MyStuff |
---|---|---|---|---|---|
Autorizzazioni | Titolare utente | Proprietario del gruppo | Dimensioni in bit. Usa -h per convertire in KB/GB | Quando è stato modificato l'ultima volta | Nome |
Nota sulle autorizzazioni :Se è presente un d all'inizio è una directory, nota file.
Ecco una guida più approfondita su come utilizzare ls
comando.
Utente, gruppo, altro
Ogni file e directory ha tre tipi di autorizzazioni utente che riconosce:
- L'utente impostato come Proprietario utente .
- Qualsiasi utente nel gruppo impostato come Proprietario del gruppo .
- Chiunque non sia in queste prime due categorie è conosciuto come Altro .
Un gruppo comune sui server Linux è apache
, in modo da poter aggiungere a apache
chiunque lavori sui siti Web gruppo. Hanno quindi l'accesso necessario a tutti i file e le directory relativi ai siti Web.
-
Cambia il proprietario dell'utente di un file o di una directory:
# chown <user>: /MyStuff
-
Modifica il proprietario del gruppo di un file o di una directory:
# chown :<group> /MyStuff
-
Modifica il proprietario dell'utente + il proprietario del gruppo di un file o di una directory:
# chown <user>:<group> /MyStuff
-
Cambia il proprietario dell'utente e il proprietario del gruppo di un file o directory e tutto ciò che contiene:
Importante: Fai attenzione con questo comando, poiché stai modificando più file senza alcuna opzione di annullamento.
# chown -R <user>:<group> /MyStuff
Leggi, scrivi, esegui
Dopo che un file o una directory ti riconosce come proprietario di un utente, di un gruppo o altro, assegna una combinazione delle seguenti autorizzazioni:
- r :l'autorizzazione di lettura ti consente di visualizzare o leggere il file o la directory.
- con :l'autorizzazione di scrittura ti consente di scrivere o modificare il file o la directory.
- x :L'autorizzazione di esecuzione ti consente di eseguire un file eseguibile o di cercare in una directory.
A ciascuna autorizzazione utente vengono assegnate queste, nell'ordine, dove un -
rappresenta che il permesso è assente. Ad esempio, la tabella seguente spiega le autorizzazioni rwxr-xr– :
rwx | r-x | r-- |
---|---|---|
La prima parte, i permessi del proprietario dell'utente | La seconda parte, i permessi del proprietario del gruppo | La terza parte, Altri permessi |
leggere, scrivere, eseguire | leggere, eseguire | leggi |
Questo utente può fare qualsiasi cosa | Questo utente può guardare ed eseguire il file. Ma non modificarlo | Questo utente può solo guardarlo |
L'immagine seguente fornisce un modo semplice per visualizzarlo:
Come modificare le autorizzazioni con le lettere
-
Modifica i permessi di file o directory:
# chmod ugo+-=rwx /MyStuff
- Utilizza qualsiasi combinazione di ugo per rappresentare utente, gruppo, altro.
- Utilizza qualsiasi combinazione di +-= per rappresentare l'aggiunta, la rimozione o la modifica delle autorizzazioni correnti alle autorizzazioni specificate.
- Utilizza qualsiasi combinazione di rwx per rappresentare lettura, scrittura, esecuzione.
-
Dai leggi autorizzazioni per altro :
# chmod o+r /MyStuff
-
Rimuovi modifica ed esegui autorizzazioni per gruppo e altro :
# chmod go-wx /MyStuff
Il seguente grafico aiuta a illustrare questo concetto:
utente | + | r letto |
---|---|---|
gruppo g | - | w scrivere |
o altro | = | x eseguire |
Nota: chmod
può anche usare -R
per modificare ricorsivamente tutti i file e le directory all'interno di quella directory. Come prima, procedi con cautela poiché non esiste un'opzione di annullamento.
Come modificare le autorizzazioni con i numeri
-
Modifica i permessi di file o directory:
# chmod 777 /MyStuff
Questo metodo utilizza la matematica, in cui aggiungi i valori di ciascuna autorizzazione per produrre un risultato finale a tre cifre:
utente | gruppo g | o altro | |
---|---|---|---|
r letto =4 | |||
scrivi =2 | |||
x esegue =1 |
- Dai rwxr-xr– autorizzazioni:
utente | gruppo g | o altro | |
---|---|---|---|
r letto =4 | ✓ | ✓ | ✓ |
scrivi =2 | ✓ | ||
x esegue =1 | ✓ | ✓ | |
4+2+1 =7 | 4+1 =5 | 4 |
Usa il seguente comando:
# chmod 754 /MyStuff
Nota: chmod
può anche usare -R
per modificare ricorsivamente tutti i file e le directory all'interno di quella directory. Come prima, procedi con cautela poiché non esiste un'opzione di annullamento.
Ecco una guida più approfondita su come usare chmod
AVVISO: Non utilizzare chmod 777
a meno che tu non sia positivo va bene. Linux, per impostazione predefinita, dispone di solide misure di sicurezza. Tuttavia, alcuni file di configurazione non possono essere modificati da nessuno. Questi sono file di base che abilitano le funzioni di base per il computer o il server. Ad esempio, determinano come attivare e consentire agli utenti di accedere. Se sono impostati su 777, il computer o il server presume che sia stato violato e chiude tutto . In tal caso, non è possibile accedere, non è possibile accendere il dispositivo ed è irrecuperabile. Questo è un modo molto semplice per rompere completamente il tuo server, quindi usa chmod
con cura.
Come esercitarsi
-
Crea una directory:
# mkdir /MyStuff
Sei quindi libero di ls -l
, chown
e chmod
questa directory vuota quanto vuoi. Quando hai finito, ripulisci da solo.
-
Elimina la directory:
# rmdir /MyStuff
Scenari più avanzati
Ecco alcuni scenari da esplorare:
Scenario 1
L'utente jdoe
ha bisogno di accedere a una directory specifica. Tuttavia, desideri mantenere il proprietario dell'utente e i proprietari del gruppo come sono.
Opzioni:
- Aggiungi jdoe al gruppo che possiede la directory. Questo dà
jdoe
accedere a tutti gli altri file o directory di proprietà di quel gruppo. - Concedi più autorizzazioni ad "Altro" su quella directory. Ciò consente l'accesso a tutti gli altri utenti sul tuo computer o server.
- Dai jdoe
sudo
permessi.jdoe
può usaresudo
per sovrascrivere i permessi di singoli file o directory. Tuttavia, "jdoe" avrebbe quindi le autorizzazioni di amministratore per accedere a qualsiasi cosa sul tuo computer o server.
Scenario 2
I tuoi sviluppatori vogliono cambiare /etc e tutto ciò che contiene su 777
autorizzazioni.
Risposta:DICA DI NO .
Ci sono molti file di sistema che si rompono e potenzialmente interrompono il tuo intero server . Invece, chiedi loro in modo specifico a quali file o directory devono accedere e quale tipo di accesso hanno bisogno.
Ecco una guida più approfondita per comprendere i permessi dei file Linux
Scenario 3
t s S +: Se esegui ls -l
e vedere le autorizzazioni che includono un t s S o+ , non procedere.
Si tratta di autorizzazioni di file e directory più avanzate come SUID, Sticky Bit e ACL. Sono più complessi, ma possono essere completamente sovrascritti con un normale chmod
comando.
Utilizza la scheda Feedback per inserire commenti o porre domande. Puoi anche avviare una conversazione con noi.