Modifica le autorizzazioni dei file in modo ricorsivo Linux

Modifica le autorizzazioni dei file in modo ricorsivo Linux
Linux come tutti gli altri sistemi operativi sono un sistema operativo multiutente a cui è possibile accedere a più utenti contemporaneamente. Pertanto, è molto importante che gli amministratori applichino un'adeguata set di autorizzazioni al fine di prevenire l'accesso e le errate configurazioni non autorizzate. Le autorizzazioni definiscono chi può accedere e modificare i file archiviati in un sistema multiutente. Linux offre agli utenti una maggiore flessibilità e controllo granulare sulle autorizzazioni di accesso dei suoi file system.

Normalmente un utente che crea il file ha i diritti di accesso e modificare le autorizzazioni del file. Inoltre, l'utente root ha per impostazione predefinita tutti i privilegi per accedere a tutti i file sul sistema.

In questo articolo, spiegheremo come modificare le autorizzazioni della directory in modo ricorsivo in un sistema operativo Linux usando i due diversi metodi. Innanzitutto, daremo una rapida panoramica di come visualizzare e modificare le autorizzazioni del file, quindi discuteremo di come modificare le autorizzazioni in modo ricorsivo.

Visualizza le autorizzazioni del file corrente

Per esaminare le autorizzazioni correnti di un file o di una directory, eseguire il seguente comando nel tuo terminale:

$ ls -l

Ad esempio, se corriamo LS-L, Riceveremmo un output simile:

Nell'elenco sopra, se il primo carattere di una riga inizia con "d", indica che è una directory mentre se inizia con "-" indica che è un file. Dopo questo, i successivi nove caratteri mostrano le autorizzazioni del file o una directory. Questi nove caratteri sono effettivamente raggruppati in tre set per l'utente, il gruppo e il proprietario rispettivamente. Inoltre, ogni set comprende tre tipi di autorizzazioni che sono R, W e X sono rispettivamente per le autorizzazioni "Leggi", "Scrivi" ed "Esegui".

Permessi di cambiamento

In Linux, per modificare le autorizzazioni di un file o di una directory, viene utilizzato il comando CHMOD. Tuttavia, per modificare l'autorizzazione, è necessario essere il proprietario del file o l'utente root.

La sintassi è:

$ chmod [riferimento] [operatore] [modalità] file11 file2 ..

Dove

  • Riferimento: chi assegnare le autorizzazioni e.g u (per utente), g (per gruppo), O (per il proprietario).
  • Operatore: + (Aggiungi l'autorizzazione), - (Rimuovi l'autorizzazione), = (imposta solo questa autorizzazione)
  • Modalità: quale autorizzazione per assegnare r (per lettura), w (per scrittura), x (per eseguire)

Modifica ricorsivamente le autorizzazioni usando -r

Potresti aver notato che se si applica le autorizzazioni tramite il comando CHMOD sopra, queste autorizzazioni vengono applicate solo al file o alla directory specificata nel comando. Non verrà applicato alle sotto-direzione o ai file all'interno di una directory.

CHMOD consente di modificare l'autorizzazione di più file e sottodirectory all'interno di una directory utilizzando l'opzione -r come segue:

$ chmod -r [riferimento] [operatore] [modalità] file ..

Diciamo.

Se visualizziamo uno dei file sottodirectory denominati, contiene alcuni file con le seguenti autorizzazioni.

Ora modifichiamo l'autorizzazione della nostra directory genitore "file" assegnandolo l'autorizzazione di scrittura come segue.

file $ chmod u+w

Dove u sta per "utente", + per "Aggiungi" e W per "Scrivi".

Dopo aver assegnato l'autorizzazione di scrittura, eseguire il "ls -l"Comando, è possibile vedere la nuova autorizzazione assegnata alla directory" file ".

Tuttavia, questo comando applica solo le autorizzazioni alla directory non ai file sotto di essa. Per verificarlo, vai alla directory dei file utilizzando "CD"Comando. Quindi eseguire il "ls -l"Comando. Puoi vedere nella seguente screenshot le autorizzazioni sono rimaste invariate.

Applichiamo l'autorizzazione in modo ricorsivo usando il seguente comando:

$ chmod -r u+w files

Non solo applicherà l'autorizzazione alla directory dei "file" dei genitori, ma anche ai file sotto di essa.

Ora, per verificare se l'autorizzazione viene applicata correttamente, vai alla directory "Files" utilizzando la "CD"Comando e quindi eseguire il"ls -l"Comando. Dal seguente input, è possibile vedere che le autorizzazioni si sono applicate correttamente a tutti i file nella directory principale.

Allo stesso modo, puoi anche assegnare ricorsivamente le autorizzazioni in forma assoluta. Ad esempio, per assegnare leggi, scrivere ed eseguire l'autorizzazione solo all'utente, è possibile utilizzare il seguente comando:

$ chmod -r 700

Modifica del permesso in modo ricorsivo usando il comando Trova

Quando CHMOD con -r viene utilizzato per applicare l'autorizzazione in una directory, assegna la stessa autorizzazione a tutti i file e le sottodirectory sotto di essa. Tuttavia, a volte, potresti voler fornire autorizzazioni separate a file e directory. Un esempio di ciò sarebbe quello di applicare l'autorizzazione di esecuzione sulla directory ma non sui file poiché i file non richiedono l'autorizzazione di esecuzione. In generale, le seguenti autorizzazioni sono assegnate ai file e alle directory.

Per le directory: 755 o drwxr-xr-xx
Per i file: 644 o -rw-r-r--

In questo caso, per assegnare ricorsivamente l'autorizzazione alle directory, utilizzare una delle forme assolute o simboliche:

$ find/path/to/directory -type d -exec chmod 755 +
$ find/path/to/directory -type d -exec chmod u = rwx, go = rx \;

Mentre per assegnare ricorsivamente le autorizzazioni ai file, utilizzare una delle forme assolute o simboliche:

$ find/path/to/directory -type f -exec chmod 644 +
$ find/path/to/directory -type f -exec chmod u = rw, go = r \;

Assicurati di sostituire le autorizzazioni con i set di autorizzazione richiesti.

Ecco come è possibile modificare le autorizzazioni di directory in Linux in modo ricorsivo. Per applicare le stesse autorizzazioni ricorsive a tutti i file e la sottodirectory, utilizzare l'opzione -r mentre applicare le autorizzazioni ricorsive a file e sottodirectory separatamente, utilizzare il comando Trova.