Strumenti per sviluppatori · Calcolatore Chmod
Come umask decide le autorizzazioni predefinite di nuovi file e cartelle
· Come funziona
chmod unix flusso di lavoro dello sviluppatore
I nuovi file non iniziano alle 777; prima viene applicata una maschera. Questo post mostra l'esatta operazione bit per bit, perché file e directory risultano diversi e come ragionare su umask 022, 027 e 077.
File che il server web non può leggere: un processo cron scrive i file 600 in una directory servita da nginx e nessuno ha eseguito chmod su nulla
Una modalità file appena osservata può essere decodificata qui anche quando il processo che l'ha prodotta è sconosciuto. Inserisci 600 e la calcolatrice mostra rw-------: proprietario legge e scrive, senza permessi per gruppo o altro. Questo spiega i bit del risultato fornito. Non stabilisce il motivo per cui un lavoro pianificato ha prodotto quel valore o se un processo web può leggere il file.
L'articolo 501 fornisce il necessario vincolo diagnostico. Una modalità valida può coesistere con una proprietà errata o con un bit di esecuzione mancante su una directory padre. Questa pagina non riceve né l'identità del processo né informazioni sul percorso. Può confrontare 600 con un 640 proposto ed esporre il bit di lettura del gruppo aggiunto, ma non può attribuire la modalità originale a umask, un servizio, una shell o un filesystem.
Da dove provengono le nuove autorizzazioni: la modalità richiesta (solitamente 666 per i file, 777 per le directory) e l'umask del processo
Le modalità di creazione richieste e umask sono input in background, non controlli della calcolatrice. Non esiste alcun campo umask e nessuna operazione che crei un file o una directory. Qualsiasi esempio in modalità creazione deve quindi arrivare come risultato calcolato esternamente. Una volta fornito, la calcolatrice può tradurre il risultato tra le forme ottale, simbolica, matriciale, riassuntiva e in inglese semplice senza specificare come è stato ottenuto il valore.
Questo ambito corretto è importante perché l'output sincronizzato può sembrare più autorevole di quanto non sia. L'immissione di 640 produce rw-r----- e identifica il proprietario read/write più il gruppo read. La pagina può verificare tale rappresentazione. Non può prevedere le impostazioni predefinite per un processo di accesso, un'attività pianificata, un servizio, un contenitore o un sistema di archiviazione, perché nessuno di questi contesti appare tra i suoi input o la sua implementazione.
Le modalità di creazione richieste e umask sono input in background non implementati qui
L'aritmetica AND-NOT deve essere eseguita all'esterno di questa calcolatrice. Il suo nucleo accetta un numero intero completato e lo esplode in flag con nome; non ha un secondo operando per una maschera di creazione. Di conseguenza, la pagina non può dimostrare una formula di maschera, confrontare la sottrazione con operazioni bit a bit o decidere se un calcolo esterno è stato eseguito correttamente prima che venisse attivata la modalità risultante.
Ciò che può controllare è lo schema di bit finale. Se un'altra fonte attendibile fornisce 640, la matrice mostra lettura e scrittura del proprietario, lettura del gruppo e nessun'altra autorizzazione. La modifica della lettura del gruppo ricostruisce 600, mentre la modifica dell'altra lettura ricostruisce 644. Queste transizioni verificano la modalità aritmetica all'interno del convertitore senza presentarle come calcoli di maschere di creazione o prove di un processo invisibile.
L'aritmetica AND-NOT deve essere eseguita all'esterno della calcolatrice
La calcolatrice può confrontare le modalità file e directory risultanti, ma non crea nessuna delle due. Con 644 selezionato, la spiegazione del file normale descrive la lettura e la modifica di un file; il passaggio alla directory di destinazione modifica i verbi nell'elenco, nella modifica delle voci e nel raggiungimento dei nomi. Il numero intero rimane 644. Questo contrasto dimostra perché il tipo di target è importante senza affermare quale creazione predefinisce le richieste del programma.
Un risultato 755 fornito separatamente può essere controllato allo stesso modo. Il suo display è rwxr-xr-x, con l'esecuzione attiva per tutte le classi; 644 è rw-r--r--, con esecuzione assente ovunque. La pagina espone chiaramente questa differenza. Non deriva alcun valore da 666, 777, 022 o qualsiasi altro input in background, perché tali calcoli non sono implementati in CHMOD_SOURCES.
La calcolatrice può confrontare le modalità file e directory risultanti, ma non crea nessuna delle due
Per un esempio con maschera restrittiva, mantieni il calcolo esterno e decodifica solo i risultati dichiarati. Se un file regolare osservato è 640, la calcolatrice restituisce rw-r-----; se una directory osservata è 750, restituisce rwxr-x---. Il proprietario mantiene un accesso più ampio in entrambi, il gruppo riceve un set più ristretto e l'altro non ne riceve nessuno. Queste affermazioni derivano direttamente dalle modalità completate.
Un'altra coppia fornita esternamente, 600 e 700, rende visibile lo stesso metodo di revisione senza rivendicarne l'origine. La modalità 600 consente solo al proprietario di leggere e scrivere su un file. La modalità 700 consente solo al proprietario di leggere, scrivere ed eseguire su una directory. Il convertitore può confermare ogni classe e bit, ma non può abbinare nessuno dei due risultati a una particolare impostazione umask in base alle proprie prove.
Esempio realizzato: decodificare i risultati calcolati esternamente per maschere restrittive
Il punto in cui un processo ottiene umask è una prova esterna al repository. Il calcolatore non contiene alcuna integrazione con shell, scheduler, gestori di servizi, contenitori o ambienti di processo. Nominare uno di questi sistemi come causa di una modalità eccederebbe quindi ciò che osserva la pagina. Inizia con una modalità affidabile raccolta altrove, quindi utilizza questo percorso solo per rendere leggibili il proprietario, il gruppo e altre parti.
L'anteprima del comando non colma questa lacuna di prove. Può citare un percorso fornito e facoltativamente visualizzare -R, ma non apre mai il percorso né legge le impostazioni del processo. Allo stesso modo, il selettore di destinazione cambia il linguaggio esplicativo anziché scoprire un tipo di oggetto. Una conversione coerente restringe la questione delle autorizzazioni; non rivela quale componente ha selezionato la modalità o se la selezione è stata intenzionale.
Il punto in cui un processo ottiene umask è una prova esterna al repository
Gli ACL predefiniti e le modalità di creazione esplicita non rientrano in questo strumento. Il suo modello di dati ha una classe proprietaria, una classe gruppo, tutti gli altri e tre bit speciali. Non sono presenti voci ACL denominate, maschere ACL, chiamate di creazione o argomenti di programma. Il calcolatore quindi non può decidere se una modalità completata provenga da un altro livello di controllo degli accessi o da un'applicazione che fornisce una particolare richiesta.
Una modalità può ancora essere controllata senza collassare insieme questi meccanismi. Immettere il valore ottale osservato, confermare le nove posizioni simboliche e confrontare la matrice con il riepilogo a quattro cifre. Se sono d'accordo, la modalità tradizionale è stata decodificata correttamente. Qualsiasi reclamo su valori predefiniti, effetti ACL o comportamento del programma richiede prove da parte del creatore e del file system, non un'altra interpretazione dello stesso numero intero.
Gli ACL predefiniti e le modalità di apertura esplicite non rientrano in questo strumento
Il flusso di lavoro corretto viene calcolato altrove, quindi controlla qui la modalità risultante. Fornisci la stringa ottale o in stile ls completata e lascia che i campi sincronizzati espongano ogni bit. La convalida rileva cifre e lettere ottali non corrette in posizioni simboliche errate. Non convalida un'espressione umask, non scopre un contesto di creazione o prevede cosa riceverà un file o una directory futuri.
Trattare il risultato come un livello diagnostico. Un 640 o 750 decodificato può rivelare una concessione inaspettata o un bit di esecuzione mancante, mentre l'articolo 501 ci ricorda di controllare separatamente la proprietà e l'attraversamento della directory principale. Fermarsi prima di assegnare una causa. La calcolatrice dimostra come un valore fornito si associa alle autorizzazioni; non offre alcuna base per affermazioni relative alle impostazioni predefinite di shell, servizio, contenitore, ACL o filesystem.