Di recente mi chiedevo quale sia la differenza tra i permessi dei file numerici a tre e quattro cifre. Ottengo i permessi numerici eseguendo. stat --format "%a" $file_name
Qual è la differenza tra 0644 e 644?
Di recente mi chiedevo quale sia la differenza tra i permessi dei file numerici a tre e quattro cifre. Ottengo i permessi numerici eseguendo. stat --format "%a" $file_name
Qual è la differenza tra 0644 e 644?
Risposte:
La prima cifra in un'autorizzazione a quattro cifre è la somma dell'ID utente impostato (4), dell'ID gruppo impostato (2) e di sticky (1). Un'autorizzazione a tre cifre è come un'autorizzazione a quattro cifre con la prima cifra impostata su zero. Così:
Se viene eseguito un file con ID utente impostato, viene eseguito come se fosse il proprietario del file anziché l'utente che esegue l'esecuzione. Pertanto, ad esempio, /bin/mount
è comunemente di proprietà di root e dispone delle autorizzazioni 4755 in cui il 4 indica che, anche se eseguito da un utente normale, verrà eseguito con i privilegi del proprietario (root).
L'impostazione dell'ID gruppo su una directory è utile per la condivisione di file.
Il bit appiccicoso viene utilizzato su directory come in /tmp
modo che tutti gli utenti possano creare file ma impedisce ai non proprietari di eliminare i file di altre persone. Pertanto, le autorizzazioni di /tmp
sono in genere 1777 dove 1 indica che è impostato il bit sticky.
Da man chmod
:
Una modalità numerica va da una a quattro cifre ottali (0-7), derivate sommando i bit con i valori 4, 2 e 1. Le cifre omesse sono considerate zeri iniziali. La prima cifra seleziona l'ID utente impostato (4) e l'ID gruppo impostato (2) e la cancellazione limitata o gli attributi appiccicosi (1). La seconda cifra seleziona le autorizzazioni per l'utente che possiede il file: read (4), write (2) ed execute (1); il terzo seleziona le autorizzazioni per gli altri utenti nel gruppo del file, con gli stessi valori; e il quarto per gli altri utenti non appartenenti al gruppo del file, con gli stessi valori.