Unix / Linux - Autorizzazione file / Modalità di accesso

In questo capitolo, discuteremo in dettaglio sui permessi dei file e le modalità di accesso in Unix. La proprietà dei file è un componente importante di Unix che fornisce un metodo sicuro per l'archiviazione dei file. Ogni file in Unix ha i seguenti attributi:

  • Owner permissions - Le autorizzazioni del proprietario determinano le azioni che il proprietario del file può eseguire sul file.

  • Group permissions - Le autorizzazioni del gruppo determinano le azioni che un utente, che è un membro del gruppo a cui appartiene un file, può eseguire sul file.

  • Other (world) permissions - Le autorizzazioni per gli altri indicano quale azione tutti gli altri utenti possono eseguire sul file.

Gli indicatori di autorizzazione

Durante l'utilizzo ls -l comando, visualizza varie informazioni relative all'autorizzazione del file come segue:

$ls -l /home/amrood
-rwxr-xr--  1 amrood   users 1024  Nov 2 00:10  myfile
drwxr-xr--- 1 amrood   users 1024  Nov 2 00:10  mydir

Qui, la prima colonna rappresenta le diverse modalità di accesso, cioè l'autorizzazione associata a un file o una directory.

I permessi sono suddivisi in gruppi di tre e ogni posizione nel gruppo denota un permesso specifico, in questo ordine: read (r), write (w), execute (x) -

  • I primi tre caratteri (2-4) rappresentano le autorizzazioni per il proprietario del file. Per esempio,-rwxr-xr-- rappresenta che il proprietario ha il permesso di lettura (r), scrittura (w) ed esecuzione (x).

  • Il secondo gruppo di tre caratteri (5-7) è costituito dalle autorizzazioni per il gruppo a cui appartiene il file. Per esempio,-rwxr-xr-- rappresenta che il gruppo ha il permesso di lettura (r) ed esecuzione (x), ma nessun permesso di scrittura.

  • L'ultimo gruppo di tre caratteri (8-10) rappresenta le autorizzazioni per tutti gli altri. Per esempio,-rwxr-xr-- rappresenta che c'è read (r) solo permesso.

Modalità di accesso ai file

I permessi di un file sono la prima linea di difesa nella sicurezza di un sistema Unix. Gli elementi costitutivi di base dei permessi Unix sono iread, write, e execute autorizzazioni, che sono state descritte di seguito -

Leggere

Concede la capacità di leggere, cioè visualizzare il contenuto del file.

Scrivi

Concede la capacità di modificare o rimuovere il contenuto del file.

Eseguire

L'utente con autorizzazioni di esecuzione può eseguire un file come programma.

Modalità di accesso alla directory

Le modalità di accesso alla directory sono elencate e organizzate allo stesso modo di qualsiasi altro file. Ci sono alcune differenze che devono essere menzionate:

Leggere

L'accesso a una directory significa che l'utente può leggere i contenuti. L'utente può guardare il filefilenames all'interno della directory.

Scrivi

Accesso significa che l'utente può aggiungere o eliminare file dalla directory.

Eseguire

L'esecuzione di una directory non ha davvero senso, quindi pensala come un'autorizzazione traversa.

Un utente deve avere execute accesso a bin directory per eseguire il file ls o il cd comando.

Modifica delle autorizzazioni

Per modificare le autorizzazioni del file o della directory, utilizzare il chmod(cambia modalità) comando. Ci sono due modi per usare chmod: la modalità simbolica e la modalità assoluta.

Usare chmod in modalità simbolica

Il modo più semplice per un principiante per modificare i permessi di file o directory è utilizzare la modalità simbolica. Con le autorizzazioni simboliche è possibile aggiungere, eliminare o specificare il set di autorizzazioni desiderato utilizzando gli operatori nella tabella seguente.

Sr.No. Operatore Chmod e descrizione
1

+

Aggiunge le autorizzazioni designate a un file o una directory.

2

-

Rimuove le autorizzazioni designate da un file o una directory.

3

=

Imposta le autorizzazioni designate.

Ecco un esempio di utilizzo di testfile. In esecuzionels -1 sul file di prova mostra che i permessi del file sono i seguenti:

$ls -l testfile
-rwxrwxr--  1 amrood   users 1024  Nov 2 00:10  testfile

Poi ogni esempio chmod il comando della tabella precedente viene eseguito sul file di prova, seguito da ls –l, così puoi vedere le modifiche alle autorizzazioni -

$chmod o+wx testfile $ls -l testfile
-rwxrwxrwx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod u-x testfile $ls -l testfile
-rw-rwxrwx  1 amrood   users 1024  Nov 2 00:10  testfile
$chmod g = rx testfile $ls -l testfile
-rw-r-xrwx  1 amrood   users 1024  Nov 2 00:10  testfile

Ecco come puoi combinare questi comandi su una singola riga:

$chmod o+wx,u-x,g = rx testfile $ls -l testfile
-rw-r-xrwx  1 amrood   users 1024  Nov 2 00:10  testfile

Utilizzo di chmod con autorizzazioni assolute

Il secondo modo per modificare i permessi con il comando chmod è usare un numero per specificare ogni set di permessi per il file.

A ogni autorizzazione viene assegnato un valore, come mostra la tabella seguente, e il totale di ogni serie di autorizzazioni fornisce un numero per quella serie.

Numero Rappresentazione dell'autorizzazione ottale Rif
0 Nessun permesso ---
1 Esegui autorizzazione --X
2 Scrivere il permesso -w-
3 Esecuzione e autorizzazione di scrittura: 1 (esecuzione) + 2 (scrittura) = 3 -wx
4 Leggi l'autorizzazione r--
5 Permesso di lettura ed esecuzione: 4 (lettura) + 1 (esecuzione) = 5 rx
6 Permesso di lettura e scrittura: 4 (lettura) + 2 (scrittura) = 6 rw-
7 Tutti i permessi: 4 (lettura) + 2 (scrittura) + 1 (esecuzione) = 7 rwx

Ecco un esempio utilizzando il file di prova. In esecuzionels -1 sul file di prova mostra che i permessi del file sono i seguenti:

$ls -l testfile
-rwxrwxr--  1 amrood   users 1024  Nov 2 00:10  testfile

Poi ogni esempio chmod il comando della tabella precedente viene eseguito sul file di prova, seguito da ls –l, così puoi vedere le modifiche alle autorizzazioni -

$ chmod 755 testfile
$ls -l testfile -rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile $chmod 743 testfile
$ls -l testfile -rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile $chmod 043 testfile
$ls -l testfile
----r---wx  1 amrood   users 1024  Nov 2 00:10  testfile

Modifica di proprietari e gruppi

Durante la creazione di un account su Unix, assegna un file owner ID e a group IDa ogni utente. Tutti i permessi sopra menzionati vengono assegnati anche in base al Proprietario e ai Gruppi.

Sono disponibili due comandi per modificare il proprietario e il gruppo di file:

  • chown - Il chown comando sta per "change owner" e viene utilizzato per modificare il proprietario di un file.

  • chgrp - Il chgrp comando sta per "change group" e viene utilizzato per modificare il gruppo di un file.

Modifica della proprietà

Il chowncomando cambia la proprietà di un file. La sintassi di base è la seguente:

$ chown user filelist

Il valore dell'utente può essere il name of a user sul sistema o il file user id (uid) di un utente sul sistema.

Il seguente esempio ti aiuterà a capire il concetto:

$ chown amrood testfile $

Cambia il proprietario del file specificato per l'utente amrood.

NOTE - Il super utente, root, ha la capacità illimitata di cambiare la proprietà di qualsiasi file, ma gli utenti normali possono cambiare la proprietà solo dei file che possiedono.

Modifica della proprietà del gruppo

Il chgrpIl comando modifica la proprietà del gruppo di un file. La sintassi di base è la seguente:

$ chgrp group filelist

Il valore del gruppo può essere il name of a group sul sistema o the group ID (GID) di un gruppo sul sistema.

L'esempio seguente aiuta a comprendere il concetto:

$ chgrp special testfile
$

Modifica il gruppo del file specificato in special gruppo.

Autorizzazione file SUID e SGID

Spesso quando un comando viene eseguito, dovrà essere eseguito con privilegi speciali per svolgere il suo compito.

Ad esempio, quando modifichi la password con l'estensione passwd , la nuova password viene memorizzata nel file /etc/shadow.

Come utente normale, non hai read o writeaccedere a questo file per motivi di sicurezza, ma quando si modifica la password, è necessario disporre dell'autorizzazione di scrittura per questo file. Ciò significa che il filepasswd il programma deve darti autorizzazioni aggiuntive in modo che tu possa scrivere sul file /etc/shadow.

Autorizzazioni aggiuntive vengono fornite ai programmi tramite un meccanismo noto come Set User ID (SUID) e Set Group ID (SGID) bit.

Quando si esegue un programma con il bit SUID abilitato, si ereditano i permessi del proprietario di quel programma. I programmi che non hanno impostato il bit SUID vengono eseguiti con i permessi dell'utente che ha avviato il programma.

Questo è anche il caso di SGID. Normalmente, i programmi vengono eseguiti con le autorizzazioni del tuo gruppo, ma invece il tuo gruppo verrà modificato solo per questo programma nel proprietario del gruppo del programma.

I bit SUID e SGID appariranno come la lettera "s"se l'autorizzazione è disponibile. Il SUID"s" bit si troverà nei bit di autorizzazione in cui i proprietari execute il permesso risiede normalmente.

Ad esempio, il comando -

$ ls -l /usr/bin/passwd
-r-sr-xr-x  1   root   bin  19031 Feb 7 13:47  /usr/bin/passwd*
$

Mostra che il bit SUID è impostato e che il comando è di proprietà della root. Una lettera maiuscolaS nella posizione di esecuzione invece che in minuscolo s indica che il bit di esecuzione non è impostato.

Se lo sticky bit è abilitato nella directory, i file possono essere rimossi solo se sei uno dei seguenti utenti:

  • Il proprietario della directory sticky
  • Il proprietario del file rimosso
  • Il super utente, root

Per impostare i bit SUID e SGID per qualsiasi directory, prova il seguente comando:

$ chmod ug+s dirname
$ ls -l drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname $