Italiano

Strumenti per sviluppatori · Calcolatore Chmod

POSIX ACL e bit della modalità chmod: quando rwx non è sufficiente

· Sfondo

chmod unix controllo degli accessi

Confini ACL mostrati come un diagramma di bit di autorizzazione Unix distinto
Illustrazione vettoriale originale ToolAcre

I bit di modalità coprono un proprietario, un gruppo e tutti gli altri. Questo post spiega il modello POSIX.1e ACL che colma il divario, come interagisce con chmod e quando un gruppo condiviso è ancora la risposta più semplice.

Un lettore in più rispetto a quanto consentito dal modello: un file appartiene al gruppo dell'app e un revisore esterno al gruppo deve leggerlo

Il modello in modalità ordinaria non ha un quarto slot di identità. Può descrivere le autorizzazioni per un proprietario, un gruppo e tutti gli altri, ma non può nominare un revisore aggiuntivo. La calcolatrice rispecchia esattamente questo confine: la sua matrice, la visualizzazione simbolica e i riepiloghi espongono queste tre classi più bit speciali, non voci di accesso per utente o per gruppo.

Ampliare l'altra classe semplicemente per accogliere un lettore in più influenzerebbe ogni identità che rientra in quella classe. La calcolatrice può mostrare il cambiamento aritmetico, come il passaggio da 0640 a 0644, ma non può decidere se un accesso più ampio è accettabile. L'accesso denominato richiede prove e strumenti al di fuori di questo percorso.

Il limite di tre classi: ecco perché il modello tradizionale prevede esattamente uno slot ciascuno per proprietario, gruppo e altri

Ogni cifra ottale finale appartiene a una classe fissa. Il proprietario, il gruppo e altri ricevono flag di lettura, scrittura ed esecuzione, producendo nove posizioni ordinarie. Il modello non può inserire un'altra tripla per una persona nominata. Una conversione riuscita descrive quindi fedelmente la modalità base senza dire nulla sulle voci aggiuntive allegate altrove.

Questa limitazione è importante quando si leggono output apparentemente restrittivi. Un valore simbolico di rw-r----- indica il proprietario della base, il gruppo e altri bit rappresentati da 0640. Ciò non dimostra che nessun'altra identità possa leggere l'oggetto, perché il calcolatore non ispeziona i dati ACL né osserva alcun livello di applicazione esterno.

POSIX.1e ACL: voci utente denominato e gruppo denominato aggiunte allo stesso file, impostate con setfacl e lette con getfacl

Le voci relative agli utenti denominati e ai gruppi denominati non sono implementate. L'origine non contiene parser o formattatore per i record ACL, nessuna maschera ACL e nessuna operazione setfacl o getfacl. Questi concetti possono motivare l'utilizzo di un meccanismo di controllo dell'accesso esterno, ma questo articolo non può specificare la sintassi o il comportamento dei comandi oltre al riconoscimento del limite esplicito della calcolatrice.

Mantieni visibile la modalità base mentre esegui quel lavoro separato. Inserisci il valore ottale riportato, verifica il proprietario, il gruppo e le altre triple e registra qualsiasi bit speciale. Quindi utilizzare la documentazione autorevole del filesystem e strumenti esterni adatti per le voci con nome. L'anteprima chmod generata dalla calcolatrice non crea, controlla o conserva un ACL.

Le voci denominate ACL richiedono strumenti esterni non implementati qui

La relazione tra una modifica chmod, bit di classe gruppo e una maschera ACL dipende dal comportamento non implementato qui. La calcolatrice converte semplicemente una modalità a dodici bit ed emette un'assegnazione o un argomento ottale. Non ha uno stato ACL rispetto al quale calcolare i diritti effettivi, quindi non può prevedere se una voce denominata verrà limitata.

Evitare di descrivere una conseguenza ACL solo dall'output della modalità. Una modifica da 0640 a 0600 rimuove in modo dimostrabile i tre bit della classe gruppo in questo modello; qualsiasi cosa relativa a utenti nominativi, gruppi nominati o maschere richiede le effettive ACL e le regole della piattaforma. Verificarli con la documentazione del filesystem prima di applicare il comando visualizzato a un oggetto ACL.

L'interazione della maschera ACL con chmod richiede la documentazione del filesystem

Anche l'ereditarietà predefinita ACL è oltre il percorso. La pagina non ha input per la directory ACL, nessuna operazione di creazione e nessun campo umask. Cambiando il selettore di destinazione da file a directory si modificano i verbi in inglese semplice allegati a una modalità fissa; non crea un file, non eredita l'ereditarietà del modello, né calcola le autorizzazioni di un oggetto futuro.

Per lo stesso motivo, una modalità di directory corrente non può prevedere la modalità di ogni nuovo figlio qui. La calcolatrice può spiegare che la lettura, la scrittura e l'esecuzione della directory corrispondono all'elenco, alla modifica delle voci e al raggiungimento dei contenuti denominati. Non può combinare questi bit di base con voci predefinite, richieste di creazione o maschere di processo che non riceve mai.

L'ereditarietà predefinita ACL e l'interazione umask sono esterne a questo percorso

Considera una modalità base fornita di 0640 per un file che potrebbe richiedere un lettore aggiuntivo. La calcolatrice restituisce rw-r-----: proprietario leggi e scrivi, gruppo leggi, altro nessuno. Questa è la dichiarazione completa supportata dai suoi input. Non identifica il revisore né offre una quarta classe in cui collocare tale identità.

Conserva questo record in modalità base mentre il lavoro ACL si svolge altrove. Se il processo esterno successivamente riporta una modalità diversa, decodificala nuovamente e confronta ciascuna classe. Non incollare un comando ACL nel campo della modalità né dare per scontato che l'anteprima del comando incorpori voci con nome. Rappresenta sempre e solo la modalità numerica attualmente visualizzata.

Esempio funzionante: mantieni leggibile la modalità base mentre il lavoro di ACL avviene altrove

Altre famiglie ACL, regole del file system remoto e supporto per il montaggio non sono stabiliti da queste fonti. La calcolatrice non rileva il tipo di archiviazione, le opzioni montate, il sistema operativo o la disponibilità delle operazioni ACL. Una vista ACL mancante è quindi un limite di implementazione, non una prova che l'oggetto sottostante non dispone di controlli di accesso più completi.

Anche la politica obbligatoria, le capacità, la proprietà e l’identità del processo sono separate. Anche la conoscenza completa della modalità di base non può sostituire tali input. Riporta la conversione della modalità come un livello ed etichetta esplicitamente ogni livello non osservato. Ciò impedisce che una visualizzazione rwx pulita venga confusa con un'analisi completa delle autorizzazioni.

Non vengono dedotti altri modelli ACL e supporto di montaggio

Quando tre classi sono sufficienti, la calcolatrice ne dà un resoconto preciso e reversibile. Quando non lo sono, mantieni leggibile l'account di base anziché forzare un'eccezione denominata nell'altra classe. Le visualizzazioni ottale, simbolica e con casella di controllo dovrebbero concordare sullo stesso valore di proprietario, gruppo, altro e bit speciale.

La regola di arresto è semplice: utilizzare questo percorso per l'aritmetica in modalità base e strumenti autorevoli esterni per lo stato ACL. Non dedurre mai voci con nome, maschere, ereditarietà o supporto del filesystem solo da rwx. Una revisione attenta combina queste fonti di prova separate senza pretendere che il calcolatore implementi strutture di controllo dell'accesso che il suo codice sorgente non contiene.