Strumenti per sviluppatori · Calcolatore Chmod
Le due vite dello sticky bit: dal testo residente in swap a /tmp
· Sfondo
chmod unix controllo degli accessi
La t in modalità /tmp's significava qualcosa di completamente diverso nell'Unix degli anni '70. Questo post segue il passaggio da un suggerimento sulle prestazioni a una regola di eliminazione e spiega cosa fa oggi.
drwxrwxrwt su /tmp: l'ultima lettera non è r, w o x e la solita spiegazione di una sola parola non spiega nulla
La stringa drwxrwxrwt mostra perché la normale aritmetica rwx non è tutta la storia. Sticky è 1000 bit, reso nella posizione di esecuzione finale. Con other-execute presente, il carattere è minuscolo t; senza di essa appare la T maiuscola. L'immissione di 1777 produce quindi rwxrwxrwt, mentre il riepilogo a quattro cifre conserva la cifra iniziale del bit speciale.
Questa visualizzazione converte una modalità fornita; non controlla una directory. La pagina divide un valore in proprietario, gruppo, altro e bit speciali, quindi ricostruisce ogni vista da quelle parti. Il loro accordo verifica l'aritmetica, non la proprietà, gli ACL o la politica del filesystem. Il comando chmod generato rimane testo normale finché qualcuno non lo esegue altrove.
Il significato originale: mantieni il segmento di testo di un programma in swap dopo l'uscita in modo che l'esecuzione successiva inizi più velocemente su dischi lenti
La spiegazione del file normale dice che è appiccicoso una volta richiesto che il testo del programma rimanga nello scambio. Questa è l’affermazione storica completa supportata da queste fonti. Non citano alcun manuale, data, sistema denominato o misura di adozione primaria di Unix. Un resoconto attento può confrontare il significato precedente del file con il comportamento attuale della directory senza inventare una storia più ampia del sistema operativo.
La calcolatrice stabilisce come viene rappresentato il bit. Sticky occupa l'ottale 1000 e condivide la posizione di esecuzione dell'altro nella notazione simbolica. Pertanto 1777 termina con t perché l'esecuzione è impostata, mentre 1644 termina con T perché è assente. Le maschere di bit, il parser, il renderer e i test di andata e ritorno supportano questi fatti, non una cronologia del comportamento del kernel.
La fonte descrive un precedente suggerimento sul file ma non fornisce alcuna citazione storica primaria
Per i file normali, lo strumento descrive lo sticky come un suggerimento di scambio storico che i kernel moderni ignorano. La formulazione non dovrebbe diventare un'affermazione universale su ogni kernel o filesystem. Questo repository offre una spiegazione del calcolatore, non un sondaggio sulla piattaforma. Il suo punto difendibile è più ristretto: sticky non altera le autorizzazioni di lettura, scrittura o esecuzione visualizzate per un file normale.
La rappresentazione rimane esatta anche quando non viene rivendicata l'esecuzione. Con il set other-execute, l'ultimo carattere è t; senza di esso, quel carattere è T. Il parser ripristina entrambe le forme sullo sticky bit e i test coprono 1777, 1644 e ogni modalità fino a 7777. Nessuno avvia programmi, monta filesystem o interroga un kernel per il comportamento effettivo.
La spiegazione del file normale dice che i kernel moderni ignorano lo sticky; non viene fatta alcuna affermazione universale
Il comportamento della directory è l'uso moderno spiegato direttamente dall'implementazione. In una directory condivisa, sticky aggiunge una restrizione di eliminazione e ridenominazione: le persone possono creare voci, ma la rimozione è limitata al proprietario o root di una voce. Le preimpostazioni catturano 1777 come pattern /tmp, mentre la spiegazione avvisa quando una directory è scrivibile da tutti senza sticky.
Il display espone questa distinzione senza pretendere di ispezionare le modalità /tmp. 777 e 1777 condividono le autorizzazioni ordinarie rwxrwxrwx. L'aggiunta di 1000 modifica la x simbolica finale in t e aggiunge +t alle assegnazioni generate. Per il resto, le sovvenzioni del proprietario, del gruppo e di altro tipo rimangono invariate; la proprietà reale, le ACL e le regole del filesystem rimangono fuori dal calcolo.
Il comportamento persistente della directory è la spiegazione odierna implementata
La frase della directory stabilisce una regola limitata: con sticky set, solo il proprietario o root di un file può eliminarlo o rinominarlo. Lo strumento non risolve le identità, controlla la proprietà della directory o tenta un'operazione. Un 1777 visualizzato conferma i bit rwx universali più appiccicosi, ma non può identificare chi possiede una voce coinvolta in una controversia reale.
Ulteriori politiche devono essere esaminate separatamente. La calcolatrice non legge ACL, funzionalità, opzioni di montaggio, controlli obbligatori o stato del file system. Il passaggio tra file e directory modifica la spiegazione, non la modalità. Se una ridenominazione riesce o fallisce inaspettatamente, la pagina non può spiegarne il motivo; isola solo i bit tradizionali per un'indagine specifica del sistema.
Lo strumento descrive i limiti di eliminazione del proprietario o della radice senza controllare le estensioni dei criteri
Confronta 1777 e 777 come modalità directory. La modalità 777 esegue il rendering di drwxrwxrwx e consente a ogni classe di elencare, creare, inserire, rinominare ed eliminare. Lo strumento avvisa che gli utenti potrebbero eliminare voci di cui non sono proprietari. L'abilitazione di sticky produce drwxrwxrwt: le concessioni rwx rimangono fisse, mentre la restrizione di eliminazione del proprietario o del root entra nella spiegazione.
Le assegnazioni generate mostrano la stessa differenza di un bit. La modalità 777 diventa u=rwx,g=rwx,o=rwx, mentre 1777 aggiunge +t; anche l'anteprima ottale conserva la cifra iniziale. Nessuna delle due anteprime apre il percorso o esegue chmod. Il confronto dimostra che solo 1000 è cambiato e spiega la sua forma t, ma la proprietà e l'applicazione richiedono ancora un controllo esterno.
Esempio realizzato: confronta le spiegazioni 1777 e 777 nella calcolatrice
La storia di Setgid non è supportata da questi materiali. Il repository può codificare setgid come 2000, rendere s o S nella posizione di esecuzione del gruppo e spiegare l'ereditarietà del gruppo di directory. Questi dettagli di implementazione non documentano le origini di setgid né collegano il suo sviluppo a sticky. L'aritmetica per un bit speciale non è una prova storica su un altro.
Anche la politica delle directory protette va oltre il set di origini. La pagina non legge alcuna impostazione fs.protected, configurazione di sistema, ACL, record di proprietà o tentata operazione. Può confermare che una modalità fornita contiene sticky e mostrare le sue concessioni di base, ma non può certificare che sticky sia l'unica restrizione della macchina. Una diagnosi più ampia necessita di prove provenienti da quell’ambiente.
La cronologia di Setgid e i criteri di directory protetta rimangono esterni al set di origine
La distinzione pratica rientra in un unico carattere. Per le directory, t registra lo sticky con other-execute, mentre T registra lo sticky senza quel bit di esecuzione. La calcolatrice conserva entrambi i moduli e mantiene 1000 visibile nel suo riepilogo. La sua fonte menziona anche un precedente accenno a un file regolare, ma fornisce troppo poche prove primarie per supportare una cronologia storica universale.
Utilizza la pagina per definire la rappresentanza prima di discutere la politica. Entra in una modalità, scegli file o directory e confronta ottale, simbolico, matrice, riepilogo e assegnazioni. L'accordo conferma una conversione coerente a dodici bit. Fermarsi qui a meno che il sistema di destinazione non fornisca ulteriori prove: lo strumento non identifica utenti, non legge percorsi, non esegue comandi e non ispeziona estensioni di policy.