Un bit Sticky è un bit di autorizzazione impostato su un file o una directory che consente solo al proprietario del file / directory o all'utente root di eliminare o rinominare il file. A nessun altro utente vengono concessi i privilegi per eliminare il file creato da un altro utente.
A volte capita che ti serva una directory Linux che può essere utilizzata da tutti gli utenti del sistema Linux per creare file. Gli utenti possono creare, eliminare o rinominare i file in base alla loro convenienza in questa directory.
Ora, cosa succede se un utente elimina (o rinomina) accidentalmente o deliberatamente un file creato da un altro utente in questa directory?
Bene, per evitare questo tipo di problemi, viene utilizzato il concetto di sticky bit. Poiché / tmp viene utilizzato per questo scopo. Quindi, per evitare lo scenario sopra, / tmp usa un po 'di sticky.
Per esempio:
mkdir demo
chmod 777 demo
Ho anche creato due file con utenti diversi in questa cartella con l'autorizzazione 777.
ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo
ls -l demo
-rwxrwxrwx 1 abhi abhi 0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu 0 Mar 11 18:15 file2
Ora attiva la parte adesiva su questo
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
Ora cosa succede se un utente (abhi) vuole rinominare il secondo utente (anshu)
mv /home/guru/demo/file2 /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
L'origine della parte adesiva
Su Linux, la parte adesiva ha solo l'uso descritto sopra, nelle directory. Storicamente, è stato usato per qualcosa di completamente diverso nei file normali, ed è qui che deriva il nome.
Quando viene eseguito un programma, ci vuole tempo per caricare il programma in memoria prima che l'utente possa effettivamente iniziare ad usarlo. Se un programma, ad esempio un editor viene utilizzato frequentemente dagli utenti, il ritardo di avvio era un sovraccarico allora.
Per migliorare questo ritardo, è stata introdotta la parte adesiva. Il sistema operativo ha verificato che se il bit appiccicoso su un eseguibile è ON, il segmento di testo dell'eseguibile è stato mantenuto nello spazio di scambio. Ciò ha reso semplice il caricamento dell'eseguibile nella RAM quando il programma è stato eseguito di nuovo, riducendo così al minimo il ritardo.
I sistemi moderni come Linux gestiscono automaticamente la loro cache di file eseguibili e altri file e non hanno bisogno di qualcosa di appiccicoso.
Fonte: "Il concetto di Linux Sticky Bit spiegato con esempi" in The Geek Stuff