Qual è la lettera "t" nell'output di "ls -ld / tmp"?

80

Quando si esegue il comando ls -ld /tmp , l'output sarà:

drwxrwxrwt 30 root root 20480 Mar 11 14:17 /tmp

Quindi ho due domande principali:

  • Qual è la lettera t dopo le autorizzazioni?
  • Per quanto ne so, /tmp è usato per creare file temporanei relativi a utenti diversi nel sistema, quindi come mai ha permesso rwxrwxrwx (777)?

Questo mi sembra sbagliato. Per favore ho bisogno del tuo aiuto per capire cosa sta succedendo qui.

    
posta Community 11.03.2014 - 13:33

3 risposte

101

Quindi qual è il bit adesivo?

Un bit appiccicoso è un bit di autorizzazione impostato su una directory che consente solo al proprietario del file all'interno di quella directory, al proprietario della directory o all'utente root di eliminare o rinominare il file. Nessun altro utente ha i privilegi necessari per cancellare il file creato da qualche altro utente.

Questa è una misura di sicurezza per evitare la cancellazione di cartelle critiche e del loro contenuto (sottodirectory e file), sebbene altri utenti dispongano di permessi completi.

Perché /tmp ha il t sticky bit?

La directory /tmp può essere utilizzata da diversi utenti Linux per creare file temporanei. Ora, cosa succede se un utente cancella / rinomina un file creato da qualche altro utente in questa directory?

Bene, per evitare questo tipo di problemi, viene utilizzato il concetto di bit appiccicoso. Quindi per quello è dato un 777 ma preservare il bit sticky non è una cattiva idea.

Come posso impostare il bit appiccicoso per una directory?

Imposterò un bit appiccicoso su una directory chiamata test sul mio desktop.

Modo simbolico ( t rappresenta il bit adesivo):

chmod o+t ~/Desktop/test

o

chmod +t ~/Desktop/test

Modo numerico / ottale (1, bit di bit appiccicosi come valore 1 nella prima posizione)

chmod 1757 ~/Desktop/test

Ora proviamo i risultati:

ls -li ~/Desktop/test

1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

Per eliminare / Rimuovere un bit adesivo

chmod o-t ~/Desktop/test

Ora proviamo i risultati:

ls -li ~/Desktop/test

1551793 drwxrwxrwx 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

Fonte: "Cos'è un bit appiccicoso e come impostarlo su Linux?" su The Linux Juggernaut

    
risposta data Maythux 11.03.2014 - 13:37
22
  

Un bit appiccicoso è un bit di autorizzazione impostato su un file o una directory che consente solo al proprietario del file / directory o dell'utente root di eliminare o rinominare il file. Nessun altro utente ha i privilegi per cancellare il file creato da qualche altro utente.

A volte capita che tu abbia bisogno di una directory Linux che possa essere usata da tutti gli utenti del sistema Linux per creare file. Gli utenti possono creare, cancellare o rinominare i file secondo la loro convenienza in questa directory.

  

Ora, che succede se un utente cancella (o rinomina) accidentalmente o deliberatamente un file creato da qualche altro utente in questa directory?

     

Bene, per evitare questo tipo di problemi, viene utilizzato il concetto di bit appiccicoso. Poiché / tmp è usato per questo scopo. Quindi, per evitare lo scenario precedente, / tmp usa il bit adesivo.

Ad esempio:

mkdir demo
chmod 777 demo

Ho anche creato due file con utenti diversi in questa cartella con il permesso 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 il bit adesivo 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 del bit adesivo

Su Linux, il bit appiccicoso ha solo l'uso descritto sopra, nelle directory. Storicamente, è stato usato per qualcosa di completamente diverso sui file normali, e da qui 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 è un sovraccarico.

     

Per migliorare questo ritardo, è stato introdotto il bit adesivo. Il sistema operativo ha verificato che, se il bit appiccicoso su un eseguibile è ON, il segmento di testo dell'eseguibile è stato tenuto nello spazio di scambio. Ciò ha reso semplice caricare nuovamente l'eseguibile nella RAM quando il programma è stato eseguito di nuovo, riducendo al minimo il ritardo.

I sistemi moderni come Linux gestiscono automaticamente la cache dei file eseguibili e di altri file e non ne hanno bisogno per questo.

Fonte: "Linux Sticky Bit Concept spiegato con esempi" in The Geek Stuff

    
risposta data g_p 11.03.2014 - 14:06
2

Un stickybit è un metodo alternativo per le directory condivise che non devono essere cancellate accidentalmente. Quando una directory ha uno stickybit, solo il proprietario o la root possono eliminarlo anche se ogni utente può utilizzare tutte le altre autorizzazioni.

/tmp è la directory più condivisa tra processi e utenti e per quello contiene lo stickybit per garantire che nessun utente possa cancellare la directory, anche se il permesso è 777 , e deve essere così per dare la possibilità agli utenti e ai processi per utilizzare la directory senza conflitti nelle autorizzazioni.

    
risposta data user259474 18.03.2014 - 12:14

Leggi altre domande sui tag