Come controllare i permessi di file e cartelle su server Linux

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.

Controlla i permessi di file e cartelle sui server 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:

otorgar-permisos-fichero-o-carpeta-linux

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.