Il sistema operativo (OS) Linux è stato sviluppato per essere multitasking e multiutente. Un sistema operativo multitasking ci consente di eseguire diversi programmi contemporaneamente, un sistema operativo multiutente consente a utenti diversi di utilizzarlo contemporaneamente. Il che significa che Linux è un sistema operativo multitasking perché può eseguire programmi contemporaneamente mentre è multiutente perché puoi connetterti a un dispositivo e usarlo tramite ssh mentre un altro utente lo sta usando.Se non sbaglio, le ultime versioni di Windows, almeno le versioni server, consentono a diversi utenti di utilizzare il computer tramite desktop remoto, supportano anche ssh tramite OpenSSH. Ma a differenza di Linux, Windows è stato inizialmente sviluppato per essere un sistema operativo personale e per molti anni i sistemi basati su Linux e Unix hanno monopolizzato le funzioni multitasking e multiutente, il che significa maggiore sicurezza e stabilità per un sistema sviluppato per essere condiviso tra gli utenti senza autorizzazioni per violare il sistema eseguendo un codice pericoloso o rimuovendo un file vitale.Come sistema operativo multiutente, Linux ha incorporato un modo molto sofisticato per gestire le autorizzazioni per utenti, gruppi di utenti, file, directory e persino partizioni o dischi.
Comprensione della sintassi dei permessi sotto Linux
Su Linux abbiamo 3 tipi di permessi:
Permesso di lettura: Permesso di leggere un file, ad esempio, possiamo leggere il codice di uno script, ma non possiamo eseguirlo.
Autorizzazione alla scrittura: Autorizzazione a scrivere un file, in questo caso possiamo modificare lo script sopra citato come esempio, possiamo anche rimuoverlo, oppure possiamo creare file all'interno di una directory.
Autorizzazione all'esecuzione: Possiamo eseguire lo script o eseguire programmi con questa autorizzazione.
Su un programma o una directory non possiamo avere nessuno di questi diritti, tutti o uno o due di essi, ma i permessi specificano anche chi ha cosa di questi diritti. Per Linux abbiamo 3 oggetti per le regole dei permessi:
L'utente: Il proprietario del file o della directory.
Il gruppo: Utenti o programmi appartenenti al gruppo del file.
chiunque: Chiunque altro.
Ogni file o directory in Linux conterrà informazioni sui propri permessi, le informazioni sono composte da queste 9 specifiche menzionate sopra: Permessi di lettura, scrittura ed esecuzione per l'utente, il gruppo e chiunque altro.
La sintassi dei permessi di Linux è quasi il seguente:
rwxrwxrwxrwxrwxrwx
In questo caso, in cui l'utente, il gruppo e chiunque altro ha pieni diritti abbiamo 9 caratteri, R, W E X ripetuti 3 volte. I primi 3 caratteri definiscono i diritti/permessi utente, i 3 secondi caratteri definiscono i diritti/permessi del gruppo mentre gli ultimi 3 caratteri definiscono i diritti/permessi di chiunque altro. In questo caso l'utente, il gruppo e chiunque altro ha i permessi di lettura, scrittura ed esecuzione.
Quindi la sintassi spiegata sopra sarà davvero simile a: Ma i permessi sono sempre preceduti da un "-" in caso di file, per una "d" in caso di directory (non approfondiremo con questi ma anche una B per il blocco dispositivi, una C per dispositivo a caratteri, una S per socket Unix e P per Named Pipe).
-rwxrwxrwxo
drwxrwxrwx
Il primo per i file e il secondo per le directory. L'utilità dei primi caratteri è solo per determinare il tipo di file e non è utile per gestire i permessi in modo da poterti concentrare rwxrwxrwx.
Come detto sopra, un file con pieni diritti per tutti sarà -rwxrwxrwx, un file con diritti completi per l'utente e il gruppo ma non per nessun altro sarebbe -rwxrwx-, con 3 righe che sostituiscono le lettere per chiunque altro.
UN directory con pieni diritti per l'utente, diritti di lettura solo per il gruppo e chiunque altro sarebbe would drwxr-r-.
Questi caratteri hanno equivalenti numerici che possiamo usare con i comandi chmod:
rwx=7 (autorizzazioni complete)
rw- =6 (solo permessi di lettura e scrittura, nessun permesso di esecuzione)
r-x =5 (solo permessi di lettura ed esecuzione, nessun permesso di scrittura)
r- =4 (solo autorizzazione di lettura, nessuna autorizzazione di scrittura o esecuzione)
-wx=3 (solo permessi di scrittura ed esecuzione, nessun permesso di lettura)
-w- =2 (solo autorizzazione di scrittura, nessuna autorizzazione di lettura o esecuzione)
-X = 1 (solo autorizzazione di esecuzione, nessuna autorizzazione di lettura o esecuzione)
- = 0 (nessuna autorizzazione)
Iniziare con chmod
Il comando in Linux per definire i permessi per un file è chmod, prima di iniziare con chmod, crea un file vuoto con nano:
nano fileforchmod
Una volta dentro il nuovo file digita “tutorial for chmod” e premi and CTRL+X e sì per salvare ed uscire.
Dopo aver salvato il file, vediamo i suoi permessi, per vedere il tipo di permesso di un file o di una directory:
ls -lIn questo caso:
ls -l fileforchmod
Come vediamo il file ha i permessi di lettura e scrittura per l'utente e i permessi di scrittura per il gruppo e chiunque altro, utente e gruppo sono "condivisa".
Se eseguiamo il comando Di meno, potremo vedere il nostro documento:
Ora lasciamo tutti i permessi per questo file, dando il permesso 0 (--), per farlo eseguire:
chmod a-rw fileforchmod
Dove:
chmod = chiama il programma per modificare i permessi
un = significa “Tutti”
-= significa meno, stiamo rimuovendo i diritti, non aggiungendo.
rw = diritti di lettura e scrittura
fileforchmod = nome file.
Quando eseguiamo chmod, dobbiamo prima definire su chi viene applicata l'autorizzazione o la restrizione, se vogliamo aggiungere o sospendere un'autorizzazione, quale autorizzazione e per quale file.
Per esempio:
Per definire per chi stiamo amministrando i permessi possiamo usare:
un = tutto
tu = utente
g = gruppo
o = altri / chiunque altro
Per definire se vogliamo aggiungere o rimuovere un permesso usiamo:
- = rimuovere il permesso.+= aggiungi permesso.
Tipi di autorizzazione: rwx
nomefile = nome del file che vuoi modificare.
Adesso vediamo se ha funzionato eseguendo di nuovo”ls -l fileforchmod"
Come vediamo, i pochi permessi che il file aveva in precedenza sono stati rimossi. Ora aggiungiamo le autorizzazioni per la lettura dell'utente, per la scrittura del gruppo e per l'esecuzione di altri:
Dare all'utente i diritti di lettura:
chmod u+r fileforchmod
Dare al gruppo i diritti di scrittura:
Conferimento di altri diritti di esecuzione:
chmod o+x fileforchmod
Come possiamo vedere se corriamo”ls -l fileforchmod” ora abbiamo i diritti che abbiamo aggiunto.
È importante ricordare che dobbiamo solo definire l'oggetto della nostra regola: l'utente, il gruppo o altri, quindi se stiamo aggiungendo o riducendo i permessi (+ o -) e il permesso che vogliamo aggiungere o rimuovere (rwx).
Se vogliamo aggiungere o rimuovere i permessi per tutti usiamo a invece di ugo (possiamo usare anche ugo), ora se vuoi aggiungere i permessi di esecuzione sia per l'utente che per il gruppo puoi digitare:
chmod ug+x fileforchmodQuindi controlla con ls -l fileforchmod se i diritti di esecuzione sono stati correttamente aggiunti:
Per modificare ricorsivamente i permessi di una directory utilizzeremo il parametro -R.
Prima di tutto crea una directory chiamata directoryforchmod usando il comando:
directory mkdirforchmod
Entra nella directory usando il comando cd:
cd directoryforchmod
Torna indietro usando il comando:
CD…
Per controllare i diritti della directory dobbiamo aggiungere un parametro a ls. Genere:
ls -ld directoryforchmod
Come vediamo, il proprietario ha tutti i diritti, il gruppo e gli altri possono leggere ed eseguire ma non possono scrivere.
Ora rimuoviamo i diritti di lettura per l'utente, per farlo digitare:
Come vediamo dopo aver lanciato un nuovo ls -ld i permessi di lettura sono stati modificati per l'utente.
Chmod permette di gestire contemporaneamente i permessi per diversi destinatari utilizzando coma, tipo:
chmod u+r,g-r,o-r directoryforchmod
Come si vede dopo l'altro ls -ld i diritti di lettura sono stati ripristinati per l'utente e rimossi per il gruppo e altri.
Come vedi gestire i permessi in Linux è semplice, ci sono comandi aggiuntivi per cambiare file, proprietario e gruppi che insegneremo nei prossimi tutorial. Spero che questo articolo su chmod ti sia stato utile, continua a seguire LinuxHint per ulteriori suggerimenti e aggiornamenti su Linux.