GNU/Linux >> Linux Esercitazione >  >> Linux

Domande per l'intervista su Linux:autorizzazioni di base per file e directory

Cosa sono le autorizzazioni per i file Linux di base?

Linux, come UNIX, è un sistema multiutente e le autorizzazioni dei file sono un modo in cui il sistema protegge da manomissioni dannose. Un modo per ottenere l'accesso quando ti viene negata l'autorizzazione è su per eseguire il root. Tieni presente che chiunque conosca la password di root ha accesso completo. Ma passare al superutente non è sempre conveniente o consigliato poiché è facile commettere errori e modificare file di configurazione importanti come superutente. Tutti i file e le directory sono "di proprietà" della persona che li ha creati. Ad esempio, nell'elenco:

-rw-rw-r--    1 john   sap      150 Mar 19 08:08 file1.txt

Il file file1.txt appartiene o è di proprietà di john. Ciò significa che puoi specificare chi è autorizzato a leggere il file, scrivere sul file o (se si tratta di un'applicazione anziché di un file di testo) chi può eseguire il file. Puoi anche controllare l'accesso alle directory in modo simile.

Lettura, scrittura ed esecuzione sono le tre impostazioni principali nelle autorizzazioni. Poiché gli utenti vengono inseriti in un gruppo quando vengono creati i loro account, puoi anche specificare se determinati gruppi possono leggere, scrivere o eseguire un file. Usando l'esempio sopra file1.txt sopra, puoi vedere che ci sono molti dettagli forniti. Puoi vedere chi può leggere (r) e scrivere su (w) il file, nonché chi ha creato il file (john) e a quale gruppo appartiene il proprietario (sap). Ricorda tuttavia che, per impostazione predefinita, il nome del tuo gruppo è lo stesso del tuo nome di accesso.

Altre informazioni a destra del gruppo includono la dimensione del file, la data e l'ora di creazione del file e il nome del file. La prima colonna mostra le autorizzazioni correnti; ha dieci slot. Il primo slot rappresenta il tipo di file. I restanti nove slot sono in realtà tre serie di autorizzazioni per tre diverse categorie di utenti. Ad esempio:

-rw-rw-r--

Questi tre set sono il proprietario del file, il gruppo a cui appartiene il file e "altri", ovvero tutti gli altri utenti.

 -    (rw-)   (rw-)   (r--) 1 john sap
|      |       |       |
type  owner  group   others

Il primo elemento, che specifica il tipo di file, mostra in genere uno dei seguenti:

  • d — una directory
  • – (trattino) — un file normale (piuttosto che directory o link)
  • l — un collegamento simbolico a un altro programma o file in un altro punto del sistema

Oltre il primo oggetto, in ciascuno dei seguenti tre set, vedrai uno dei seguenti:

  • r — è possibile leggere il file
  • con — è possibile scrivere il file in
  • x — il file può essere eseguito (se è un programma)

Quando vedi un trattino in proprietario, gruppo o altri, significa che non è stata concessa una particolare autorizzazione. Guarda di nuovo la prima colonna di file1.txt e identifica i suoi permessi.

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Il proprietario del file (in questo caso, john) ha il permesso di leggere e scrivere nel file. Il gruppo, sap, ha anche il permesso di leggere e scrivere su file1.txt. Non è un programma, quindi né il proprietario né il gruppo hanno il permesso di eseguirlo. Tutti gli altri utenti possono solo leggere il file.

In che modo i bit dei permessi dei file corrispondono ai valori forniti a chmod?

I bit di autorizzazione applicati a un oggetto del file system corrispondono direttamente ai valori che possono essere specificati nella tupla a 4 cifre fornita all'utilità chmod nel comando seguente:

chmod abcd [file system object]

Ciascun valore nel set di cifre abcd è costituito dalla somma dei valori 1 2 e 4. Sommando questi valori per ciascuna cifra, è possibile generare un valore per impostare tutti gli attributi degli oggetti file:

  • a – Questa cifra controlla le impostazioni degli attributi speciali. il valore 1 imposta il bit setuid, il valore 2 imposta il bit setgid e il valore 4 imposta il bit sticky sull'oggetto
  • b , c e d – Queste cifre controllano le autorizzazioni di lettura, scrittura ed esecuzione per il proprietario del file, il gruppo principale dei proprietari del file e tutti gli altri utenti. Il valore 4 abilita l'autorizzazione di lettura, il valore 2 abilita l'autorizzazione di scrittura e il valore 1 abilita l'autorizzazione di esecuzione.

Esempi

Per impostare un file in modo che sia permanente, leggibile e scrivibile dal proprietario, leggibile dal gruppo principale e inaccessibile a tutti gli altri:

# chmod 4610 filename

Per concedere tutti i permessi a tutti sul sistema:

# chmod 0777 filename

Per ulteriori informazioni su chmod, vedere la pagina man di chmod.

Come impostare i permessi di file e directory usando chown e chmod?

Usa il chown comando per modificare il proprietario e/o il gruppo del file. La sintassi è semplice. Basta digitare chown, seguito dall'utente che deve possedere il file, quindi, facoltativamente, due punti (":") e il nome del gruppo. Si noti che i nomi utente e/o gruppo devono esistere nel sistema. Ad esempio:

# chown john:sap file1.txt
# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

risulta che l'utente john possiede il file. Il proprietario del gruppo del file è anche impostato sul gruppo di john che è sap.

Usa il comando chmod per modificare i permessi. Questo esempio mostra come modificare i permessi su file1.txt con il comando chmod. Se sei il proprietario del file o hai effettuato l'accesso all'account root, puoi modificare qualsiasi autorizzazione per il proprietario, il gruppo e altri. Al momento, il proprietario e il gruppo possono leggere e scrivere nel file. Chiunque al di fuori del gruppo può solo leggere il file (r–).

ATTENZIONE :Ricorda che i permessi sui file sono una caratteristica di sicurezza. Ogni volta che si consente a qualcun altro di leggere, scrivere ed eseguire file, si aumenta il rischio che i file vengano manomessi, alterati o eliminati. Di norma, dovresti concedere autorizzazioni di lettura e scrittura solo a coloro che ne hanno veramente bisogno.

Come modificare i permessi di file/directory utilizzando le notazioni abbreviate?

Nell'esempio seguente, vuoi consentire a tutti di scrivere sul file, in modo che possano leggerlo, scrivervi note e salvarlo. Ciò significa che dovrai modificare la sezione "altri" dei permessi dei file. Dai un'occhiata prima al file. Al prompt della shell, dovresti digitare:

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Ora dovresti digitare quanto segue:

# chmod o+w file1.txt

Il comando precedente dice al sistema che vuoi concedere ad altri il permesso di scrittura per il file file1.txt. Per controllare i risultati, elenca di nuovo i dettagli del file. Ora, il file si presenta così:

-rw-rw-rw-    1 john sap     150 Mar 19 08:08 file1.txt

Ora tutti possono leggere e scrivere sul file. Per rimuovere i permessi di lettura e scrittura da file1.txt usa il comando chmod per togliere entrambi i permessi di lettura e scrittura.

# chmod go-rw file1.txt

Digitando go-rw , stai dicendo al sistema di rimuovere i permessi di lettura e scrittura per il gruppo e per altri dal file file1.txt.

Il risultato sarà simile a questo:

-rw-------    1 john sap    150 Mar 19 08:08 file1.txt

Pensa a queste impostazioni come a una specie di scorciatoia quando vuoi modificare i permessi con chmod, perché tutto ciò che devi fare è ricordare alcuni simboli e lettere con il comando chmod. Ecco un elenco di ciò che rappresenta la stenografia:

Identità

u - the user who owns the file (that is, the owner)
g - the group to which the user belongs
o - others (not the owner or the owner's group)
a - everyone or all (u, g, and o)

Autorizzazioni

r - read access
w — write access
x — execute access

Azioni

+ — adds the permission
- — removes the permission
= — makes it the only permission

Ecco alcuni esempi comuni di impostazioni che possono essere utilizzate con chmod:

g+w - adds write access for the group
o-rwx - removes all permissions for others
u+x - allows the file owner to execute the file
a+rw - allows everyone to read and write to the file
ug+r - allows the owner and group to read the file
g=rx - allows only the group to read and execute (not write)

Come rimuovere tutte le autorizzazioni per tutti gli utenti utilizzando le notazioni abbreviate?

Vuoi testare le tue capacità di autorizzazione? Rimuovi tutte le autorizzazioni da file1.txt — per tutti.

# chmod a-rwx file1.txt

Ora, verifica se riesci a leggere il file con il comando cat file1.txt, che dovrebbe restituire quanto segue:

cat: file1.txt: Permission denied

La rimozione di tutte le autorizzazioni, inclusa la tua, ha bloccato correttamente il file. Ma poiché il file appartiene a te, puoi sempre modificare i suoi permessi con il seguente comando:

# chmod u+rw file1.txt

Come elencare i permessi dei file in formato ottale?

Per elencare i permessi dei file in formato ottale, usa stat comando fornito da coreutils pacchetto. Per ottenere i permessi ottali di tutti i file e le directory nella directory di lavoro corrente, esegui il comando seguente:

$ stat -c "%a %n" *

Per ottenere i permessi ottali dei contenuti in una directory particolare, dì /usr/share, esegui il comando seguente:

$ stat -c "%a %n" /usr/share/*
755 /usr/share/aclocal
755 /usr/share/alsa
755 /usr/share/anaconda
755 /usr/share/appdata
...

Per ottenere i permessi ottali solo per la directory, dì /usr/share e non per il contenuto al suo interno, esegui il comando seguente:

$ stat -c "%a %n" /usr/share/
755 /usr/share/

Come ripristinare tutti i permessi dei file di sistema sui valori predefiniti nel caso in cui tutti i permessi dei file siano cambiati in 777?

Hai eseguito accidentalmente il seguente comando.

# chmod -R 777 /

C'è un modo per ripristinare le autorizzazioni originali?

Esegui il comando seguente per ripristinare le autorizzazioni originali.

# rpm -a --setperms

Questo mostrerà alcuni errori, ma puoi trascurarli.

Come copiare i file con un permesso specifico in rete?

Per ottenere la copia di file con autorizzazioni specifiche, è possibile utilizzare l'utilità rsync:

# rsync --chmod=u+rwx,g+rx,o+rx  testfile [email protected]:/tmp/

Questo copierà il file di test nella directory home dell'utente e le autorizzazioni per il file copiato sarebbero 755.


Linux
  1. Come rendere non cancellabili file e directory, anche per root in Linux

  2. Nozioni di base sui permessi dei file Linux

  3. Precedenza dell'utente e del proprietario del gruppo nelle autorizzazioni dei file?

  4. UNIX / Linux:Guida per principianti alle autorizzazioni di file e directory ( umask, chmod, read, write, execute )

  5. Domande per interviste su Linux – Permessi speciali (SUID, SGID e sticky bit)

Comprendere i permessi dei file Linux

Come copiare file e directory in Linux

Permessi della directory Linux di base e come controllarli

Gestisci le autorizzazioni di directory e file con chmod Recursive

Comprendere le autorizzazioni di base dei file e la proprietà in Linux

Domande dell'intervista su Linux Network File System (NFS).