GNU/Linux >> Linux Esercitazione >  >> Linux

Come modificare le autorizzazioni in Linux

Su Linux e Unix, la sicurezza inizia con i permessi dei file. A un livello molto semplice, i permessi di file e directory svolgono un ruolo fondamentale nella sicurezza di un sistema. Quando crei un file o una directory su sistemi Linux, viene fornito con autorizzazioni predefinite.

I permessi dei file vengono applicati su tre livelli:il owner , group members e others . Il comando chmod viene utilizzato in Linux per modificare queste autorizzazioni.

In questo tutorial, discuteremo come modificare i permessi dei file in Linux usando il comando chmod.

1) Modifica le autorizzazioni utilizzando il metodo Numerico (ottale)

Le autorizzazioni (modalità di accesso) possono essere modificate con il comando chmod utilizzando alcuni operatori (-, + o =) per assegnare autorizzazioni (r, w o x) a un utente specifico (u, g, o o a). Il comando accetta le specifiche della modalità di accesso numerica (ottale) o simbolica.

Il metodo numerico è il modo più comunemente usato per impostare le autorizzazioni per file e directory. Per fare ciò, inserisci chmod numeric_permission filename .

Ogni permesso è rappresentato da un numero e il permesso per un'entità specifica è infine rappresentato da un insieme di tre colonne.

Nel diagramma sopra,

All'"Utente" viene concessa (4 2 1 ) l'autorizzazione in cui l'utente ha letto, scritto ed eseguito.

Al "Gruppo" viene concessa (4 2 0) l'autorizzazione in cui i membri del gruppo possono leggere e scrivere.

L'"Altro (mondo)" riceve il permesso (4 0 0) in cui gli altri possono solo leggere.

Nel metodo numerico, tutte le autorizzazioni vengono modificate contemporaneamente.

Ad esempio,

755 :imposta il permesso di lettura+scrittura+esecuzione per l'user , imposta l'autorizzazione di lettura+esecuzione sul group e imposta l'autorizzazione di lettura+esecuzione su others .

# chmod 755 asciiquarium.tar.gz
# ls -l asciiquarium.tar.gz 
-rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz

476 :imposta il permesso di sola lettura per l'user , imposta l'autorizzazione di lettura+scrittura+esecuzione sul group e imposta i permessi di lettura+scrittura su others .

# chmod 476 bootstrap
# ls -l bootstrap
-r--rwxrw- 1 root root 5747 Apr 25 01:45 bootstrap

500 :imposta il permesso di lettura+esecuzione per l'user , non impostare autorizzazioni per il group e non impostare autorizzazioni per gli others .

# chmod 500 asciiquarium_1.1/
# ls -ld asciiquarium_1.1/
dr-x------ 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1/

Quando si utilizza il metodo numerico, è necessario specificare sempre tre valori (proprietario, gruppo e altri).

2) Modifica i permessi utilizzando la modalità simbolica

La modalità di accesso numerico è maggiormente preferita dalla maggior parte degli utenti Linux. Tuttavia, alcune persone preferiscono utilizzare i moduli simbolici perché di solito modificano una modalità esistente invece di sostituirla completamente.

La modalità simbolica è usata come chmod entity=permissions filename . Le specifiche della modalità simbolica hanno tre parti, composte da singoli caratteri e utilizzano una lettera per identificare la parte:

  • Entity :Proprietario dell'utente =u , proprietario del gruppo =g , altro =o e tutti =a
  • Operation :+ per aggiungere, - da rimuovere o = assegnare (rimuovere le altre autorizzazioni esistenti)
  • Permissions to set :r =leggi, w =scrivi e x =esegui

Alcuni esempi per farti capire.

chmod +x  :Aggiungi l'autorizzazione di esecuzione per tutti gli utenti dell'entità, il gruppo e altri. Viene utilizzato per rendere eseguibile uno script o un programma per eseguirlo

# chmod +x hello.sh
# ls -l hello.sh 
-rwxr-xr-x 1 root root   66 May 15 20:12 hello

Ora puoi eseguire il tuo script come di seguito

# ./hello 
Hello... How are you ?

u+x :Aggiungi il permesso di esecuzione solo per l'utente

# chmod u+x backupdb.sh
# ls -l backupdb.sh 
-rwxr--r-- 1 linoadmin linoadmin 15436 Mar 9 2013 backupdb.sh

go-w :rimuovi l'autorizzazione di scrittura solo dal gruppo e da altri corsi.

# chmod go-w script-test/
# ls -ld script-test/
drwxr-xr-x 3 root root 4096 Apr 25 02:21 script-test/

a=rw :imposta le autorizzazioni di lettura e scrittura, ma non di esecuzione, per tutti.

# chmod a=rw bootstrap
# ls -l bootstrap
-rw-rw-rw- 1 root root 5747 Apr 25 01:45 bootstrap

g-x,o-rx :rimuove l'autorizzazione di esecuzione per il group e rimuovi il permesso di lettura+esecuzione per other .

Nota:non utilizzare lo spazio dopo la virgola (, )

# chmod g-x,o-rx baba/

Verifichiamo il permesso usando il comando ls:

# ls -ld baba/
drwxr----- 2 root root 4096 Apr 13 01:35 baba/

Quando si utilizza il metodo simbolico è possibile eseguire combinazioni per manipolare alcune entità contemporaneamente.

Tieni presente che, quando usi la modalità simbolica, i permessi che non stai specificando rimangono come erano prima di eseguire il comando chmod

3) Modifica le autorizzazioni in modo ricorsivo

Quando usi il comando chmod su una directory senza alcuna opzione, non influisce sui permessi sulle sue sottodirectory. Significa che i permessi vengono applicati solo alla directory stessa.

Per modificare i permessi di una directory con le sue sottodirectory (ricorsivamente), possiamo usare -R opzione.

Ad esempio, guarda la nostra directory 'asciiquarium_1.1' su cui abbiamo applicato 500 autorizzazioni.

Quando elenchiamo i permessi per file e directory all'interno della directory 'asciiquarium_1.1', possiamo non essere impostati su '500'.

# ls -l asciiquarium_1.1/
total 60
-rw-rw-r-- 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-rw-rw-r-- 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-rw-rw-r-- 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-rw-rw-r-- 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-rw-rw-r-- 1 linoadmin linoadmin  1060 Mar  9  2013 README

Ora usiamo chmod -R comando con gli stessi permessi sulla directory 'asciiquarium_1.1' utilizzando il seguente comando:

# chmod -R 500 asciiquarium_1.1/

Ora verifichiamo i permessi di file e directory come segue:

# ls -l asciiquarium_1.1/
total 60
-r-x------ 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-r-x------ 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-r-x------ 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-r-x------ 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-r-x------ 1 linoadmin linoadmin  1060 Mar  9  2013 README

Puoi vedere che le autorizzazioni sono state impostate su file e sottodirectory.

4) Autorizzazioni bit speciali

La maggior parte delle attività che completerai con le autorizzazioni riguarderanno le autorizzazioni di lettura, scrittura ed esecuzione. Tuttavia, ci sono molte altre autorizzazioni speciali che puoi assegnare a file e directory nel tuo file system. Queste autorizzazioni speciali sono indicate come una cifra aggiuntiva aggiunta all'inizio della modalità del file o della directory.

I seguenti bit speciali sono disponibili per l'uso del file system Linux:

  • SUID :l'autorizzazione Imposta ID utente consente agli utenti di eseguire un programma come se fossero l'utente proprietario del programma; nella maggior parte dei casi il proprietario dell'utente è l'utente root. Il valore numerico di questo set di autorizzazioni è 4XXX (dove "XXX" è sostituito dai valori numerici per il set di tre menzionato in precedenza).
  • SGID :quando è impostata su una directory, l'autorizzazione Imposta ID gruppo assegna automaticamente la proprietà del gruppo di tutti i nuovi file creati nella directory al proprietario del gruppo della directory (numerico =2XXX). Quando è impostato su un file, il SGID consente agli utenti di eseguire un programma come se fossero il proprietario del gruppo del file.
  • Punto appiccicoso:t il suo set di autorizzazioni viene utilizzato per impedire ai "non proprietari" di eliminare i file in una directory comune (numerico =1XXX). In una directory sticky bit, solo il proprietario del file o il proprietario della directory può eliminare il file (anche root può sempre eliminare i file).

Per capire ti faccio un esempio:

Applicheremo l'autorizzazione SUID a un file utilizzando il seguente comando:

# chmod 4755 bootstrap
# ls -l bootstrap
-rwsr-xr-x 1 root root 5747 Apr 25 01:45 bootstrap

Conclusione

Quando si modificano i permessi è sempre possibile utilizzare il metodo numerico o il metodo simbolico. Le autorizzazioni numeriche sono le più utilizzate e vengono visualizzate ogni volta. Di norma, consiglio di utilizzare la modalità numerica per impostare o forzare i permessi su un oggetto, invece di apportare piccole modifiche ai permessi. Dovresti avere l'accesso utente root o sudo per modificare le autorizzazioni per file e directory di proprietà di altri, altrimenti è possibile modificare solo le autorizzazioni di file e directory che possiedi.


Linux
  1. Come modificare un nome host in Linux

  2. Come modificare un nome utente in Linux

  3. Come modificare il nome host in Linux

  4. Come modificare la porta SSH in Linux

  5. Come utilizzare il comando chmod (Cambia modalità) in Linux

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Come modificare l'indirizzo MAC in Linux

Come modificare una shell utente in Linux

Come cambiare utente su Linux

Come modificare l'indirizzo IP su Linux

Come modificare le autorizzazioni dei file