Quando abbiamo un server NAS basato su Linux, o direttamente un sistema operativo come Debian o Ubuntu dove abbiamo installato diversi servizi per accedere a file e cartelle sulla rete locale da altri utenti, controllare lettura, scrittura ed eseguire l'accesso ad essi. i file e le cartelle che condividiamo sono essenziali. Dobbiamo tenere presente che, quando condividiamo le nostre cartelle e file tramite Samba o FTP, è possibile che l'autenticazione dei client avvenga con un utente senza privilegi, quindi dobbiamo organizzare correttamente gli utenti e i gruppi per fornire i permessi necessari e non più .
Dobbiamo anche tenere presente che i sistemi operativi sono multiutente, potremmo accedere contemporaneamente a più utenti registrati in locale nel nostro sistema operativo, quindi è molto importante effettuare una revisione periodica dei permessi esistenti. Molte volte vogliamo impedire ad altri utenti del computer di modificare i file, ma non sappiamo come ottenerlo. In questa occasione, ti insegneremo come assegnare i permessi a cartelle e file in Linux.
Per rendere tutto molto più chiaro, divideremo questo articolo in diverse sezioni che ci permetteranno di capire meglio di cosa si parla in ogni momento. È necessario chiarire che tutto ciò che spiegheremo sarà tramite la riga di comando, ovvero dovremo estrarre una console o connetterci tramite SSH al nostro server Linux. Se non hai familiarità con questo componente Linux, forse questo è il momento migliore, dal momento che il livello di difficoltà di cui parleremo è basso.
Cos'è il comando chmod e a cosa serve?
Il comando chmod (change mode) ha lo scopo di cambiare l'utente, il gruppo e altri permessi ai file e alle cartelle, possiamo cambiare i permessi di lettura, scrittura ed esecuzione di tutti i file e le cartelle che vogliamo, inoltre, possiamo fare a Modifica ricorsiva di una determinata cartella, in questo modo anche tutti i file e le cartelle al suo interno saranno interessati da questa modifica. Il comando chmod è disponibile sia nei sistemi operativi Linux che Unix, quindi, se il nostro server è basato su Unix come un FreeBSD, possiamo modificare i permessi di file e cartelle nello stesso modo in cui lo facciamo in Debian o Ubuntu.
La sintassi per l'utilizzo di chmod è la seguente:
chmod [modificatori] permessi file / directory
Per prima cosa eseguiremo il comando chmod, poi potremo incorporare diversi modificatori, ad esempio il “-R” per renderlo ricorsivo a tutte le cartelle e file all'interno della stessa cartella, poi dovremo mettere i nuovi permessi che vogliamo applicare e, infine, inseriremo il percorso assoluto o relativo del file o della cartella di cui vogliamo modificare i permessi.
Un dettaglio molto importante è che in alcuni casi è assolutamente necessario eseguire chmod con i permessi di superutente, poiché solo l'utente amministratore del sistema operativo può modificare i permessi. Ciò può essere ottenuto accedendo come root o utilizzando direttamente il popolare comando "sudo" per promuovere temporaneamente il superutente con il comando da eseguire.
Esempi di utilizzo di chmod per modificare i permessi
La prima cosa che faremo è creare una nuova cartella e file al suo interno, con l'obiettivo di esercitarti con queste cartelle e file e non modificare i permessi predefiniti delle cartelle già esistenti nel tuo sistema operativo. Per questo motivo, ci accingiamo a prepararci affinché i test abbiano successo.
Prima di iniziare, tutti i comandi che andrai a eseguire verranno eseguiti con utenti diversi, in modo da verificare correttamente i permessi che andremo ad applicare. Per passare da un utente all'altro su sistemi Linux basta aprire la console ed eseguire ” il tuo username “, inseriamo la password e accederemo automaticamente al terminale come se fossimo l'altro utente.
Preparazione del nostro sistema per i test
La prima cosa che faremo è creare una cartella nella directory corrente di ciascun utente , solitamente situato in /home/nome utente.
mkdir Carpetathis article
Successivamente, ci sposteremo in questa cartella e creeremo un file:
cd Carpetathis article
toccare il file di prova
Per finire scriveremo il seguente comando per salire di livello ed uscire dalla cartella che abbiamo creato:
cd ..
Con questo, abbiamo il nostro sistema pronto per iniziare a testare le modifiche alle autorizzazioni.
Ottenere informazioni su file e cartelle
Se vogliamo elencare i file esistenti in una cartella dovremo solo scrivere il seguente comando:
ls
Con questo otteniamo solo il nome dei file o delle cartelle in cui ci troviamo sul percorso. Per avere maggiori dettagli dovremo scrivere quanto segue:
ls -l
Abbiamo eseguito questo comando sul nostro server, qui puoi vedere come appare l'output:
Questo comando fornisce le seguenti informazioni (in ordine da sinistra a destra):
- Tipo di file (il file mostra "-" e la directory mostra una "d").
- Permessi di lettura, scrittura ed esecuzione, sia per utente, gruppo e altri.
- Utente proprietario.
- Gruppo proprietario del file.
- Taglia
- Data ultima modifica.
- Nome
Dopo aver creato la cartella e i file, oltre a aver visto l'output del comando «ls -l», interpreteremo i permessi di cui dispongono i file o le cartelle.
Interpretare i permessi di un file o di una cartella
Hai già visto che i diversi file hanno queste autorizzazioni:
drwxr-xr-x 3 bron bron 4096 may 6 13:19 Descargas
In questa stringa offerta vedremo che, per ogni file o cartella, c'è in primo luogo una serie di lettere. Questi sono i permessi che ha il file e vengono letti come segue:
Nell'esempio precedente, abbiamo i permessi "drwxr-xr-x", questo significa quanto segue:
- d: rubrica
- rwx: permessi di lettura, scrittura ed esecuzione per l'utente proprietario della directory.
- rx: legge ed esegue i permessi per il gruppo che possiede la directory.
- rx: legge ed esegue i permessi per gli altri nella directory.
Se vogliamo che solo l'utente proprietario sia in grado di leggere, scrivere ed eseguire un determinato file, dovremmo vedere quanto segue:
-rwx------
Cioè, possiamo concedere le autorizzazioni ai seguenti ruoli:
- Utente proprietario.
- Gruppo a cui appartiene il proprietario
- Resto degli utenti del team.
Come modificare i permessi di file e cartelle
Il comando che dobbiamo utilizzare per svolgere questo compito è chmod, questo sarà lo strumento con cui potremo aggiungere o rimuovere i permessi, sia a un file che a una cartella esistente nel file system del nostro sistema operativo. Per fare questa configurazione con chmod possiamo farlo in due modi diversi, usando lettere più “umane” ma più lunghe, e anche numeri in formato “ottale”, che è molto più veloce. Quest'ultima forma è la nostra preferita per la sua velocità, anche se è possibile che all'inizio ti piaccia usare di più le lettere, perché è molto più comprensibile.
Lettere
Se useremo le lettere per aggiungere o rimuovere i permessi da una cartella o un file, dobbiamo prendere in considerazione i ruoli, i simboli e i permessi.
Esistono tre tipi di ruoli:
- u: utente
- g: gruppo
- oppure: altri
- a: all (all), se è necessario applicare la stessa autorizzazione a utenti, gruppi e altri, utilizzare "a" per risparmiare tempo.
Due tipi di simboli:
- +: aggiungi permessi
- -: rimuovere i permessi
- =: specifica i permessi impostati.
Tre tipi di permessi:
- r: lettura
- w: scrittura
- x: esecuzione
Successivamente, ti offriamo una serie di esempi in modo che tu possa vedere di cosa stiamo parlando:
Assegna le autorizzazioni complete di lettura, scrittura ed esecuzione a tutti i ruoli, sia utente, gruppo e altri:
chmod ugo+rwx archivoDePrueba
Rimuovere le autorizzazioni di lettura, scrittura ed esecuzione da altri utenti:
chmod o-rwx archivoDePrueba
Alla fine, tutto sta nel combinare i ruoli, i simboli e i permessi a seconda della necessità che abbiamo.
Basato su ottale usando i numeri
I chmod command è anche compatibile con un'altra nomenclatura che ti insegneremo e che si basa sull'ottale.
Immagina che i permessi del proprietario (rwx) siano identificati da 0 e 1. Cioè, se per esempio vogliamo dare solo permessi di lettura e scrittura (e non permessi di esecuzione) sarebbe: 110. Se vogliamo solo permessi di lettura sarebbe essere: 100.
Pertanto, tenendo conto di tutte le possibilità esistenti, otteniamo i seguenti valori:
- 0: 0
- 0: 0
- 0: 1
- 0: 1
- 1: 0
- 1: 0
- 1: 1
- 1: 1
Cioè, questo è qualcosa che può essere estrapolato sia per l'utente, che per il gruppo e per gli altri.
Il formato del comando sarebbe il seguente:
chmod xxx archivoDePrueba
Dove le x verranno cambiate in un numero a seconda delle autorizzazioni assegnate.
Ad esempio, se vogliamo dare al proprietario i permessi completi e lasciare gli altri due ruoli (gruppo e altri) senza alcun permesso, il comando sarebbe:
chmod 700 archivoDePrueba
Se vogliamo dare i permessi di lettura e scrittura a tutti i ruoli, allora sarà:
chmod 666 archivoDePrueba
Con questi due semplici modi possiamo impostare i permessi di file e cartelle sul nostro computer Linux. Inoltre, avremo a portata di mano il comando ls -l per ottenere informazioni in tempo reale sui file e sulle cartelle del sistema. Ti consigliamo di visitare il manuale ufficiale di chmod per Linux, per questo eseguiremo quanto segue sulla console:
man chmod
Consigliamo anche di esaminare i comandi getfacl e setfacl per configurare elenchi di controllo di accesso più avanzati in Linux e non solo utilizzare utenti, gruppi e altri, questo ci consentirà una maggiore granularità, sebbene sia chiaramente molto più avanzato del popolare chmod . In generale, se fai una buona organizzazione di utenti e gruppi, non dovresti aver bisogno di usare questi elenchi di controllo degli accessi.