Question Quelle est la lettre “t” dans la sortie de “ls -ld / tmp”?


Lors de l'exécution de la commandels -ld /tmp, le résultat serait:

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

J'ai donc deux questions principales:

  • Quelle est la lettre t après les permissions?
  • Pour autant que je sache /tmp est utilisé pour créer des fichiers temporaires liés à différents utilisateurs dans le système, alors comment se fait-il qu'il a la permission rwxrwxrwx (777)?

Cela me semble faux. S'il vous plaît, j'ai besoin de votre aide pour comprendre ce qui se passe ici.


80
2018-03-11 12:33


origine


Lis le Article de Wikipedia, c'est plutôt mieux que les réponses ici. - Gilles
Voir également: unix.stackexchange.com/q/79395/4784 - Martin Thoma
OK Pourquoi alors, lorsque j'installe une mise à jour ou un nouveau paquet rpm à partir de / tmp, le bit sticky est-il supprimé?


Réponses:


Alors, quel est le bit collant?

Un bit sticky est un bit d'autorisation qui est défini sur un répertoire qui autorise uniquement le propriétaire du fichier dans ce répertoire, le propriétaire du répertoire ou l'utilisateur root à supprimer ou à renommer le fichier. Aucun autre utilisateur ne dispose des privilèges requis pour supprimer le fichier créé par un autre utilisateur.

Il s'agit d'une mesure de sécurité permettant d'éviter la suppression des dossiers critiques et de leur contenu (sous-répertoires et fichiers), même si les autres utilisateurs disposent d'autorisations complètes.

Pourquoi /tmp avoir la t peu collant?

le /tmp Le répertoire peut être utilisé par différents utilisateurs Linux pour créer des fichiers temporaires. Maintenant, que faire si un utilisateur supprime / renomme un fichier créé par un autre utilisateur dans ce répertoire?

Eh bien, pour éviter ce genre de problèmes, le concept de sticky bit est utilisé. Donc pour cela un 777 est donné mais préserver le sticky bit n'est pas une mauvaise idée.

Comment puis-je configurer le sticky bit pour un répertoire?

Je vais mettre un bit collant sur un répertoire appelé test sur mon bureau.

Manière symbolique (t représente le sticky bit):

chmod o+t ~/Desktop/test

ou

chmod +t ~/Desktop/test

Voie numérique / octale (1, bit de bit sticky valeur 1 en première position)

chmod 1757 ~/Desktop/test

Maintenant, testons les résultats:

ls -li ~/Desktop/test

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

Pour supprimer / supprimer un bit collant

chmod o-t ~/Desktop/test

Maintenant, testons les résultats:

ls -li ~/Desktop/test

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

La source: “Qu'est-ce qu'un bit collant et comment le configurer sous Linux?” À The Linux Juggernaut


101
2018-03-11 12:37



Cette utilisation du sticky bit ne s'applique qu'aux répertoires, pas aux fichiers. Dans un passé lointain, sa signification sur les fichiers exécutables était de sauvegarder le segment de texte du programme pour le permuter plutôt que de le supprimer pour que son exécution soit plus rapide, mais ces jours-ci, il n'a aucune signification sur les fichiers standard. - psusi
Quel était le segment de texte d'un programme et comment le garder plus rapidement? - BluePython
@BluePython Le segment "texte" d'un fichier exécutable est la partie qui inclut tout le code machine: le bit exécutable réel. Les autres segments courants sont les "données" pour les données statiques et les "bss" pour les données qui sont toutes nulles (et n'ont donc pas besoin d'être stockées dans l'exécutable). - Miles Rout


Un bit Sticky est un bit d'autorisation qui est défini sur un fichier ou un répertoire qui permet uniquement au propriétaire du fichier / répertoire ou à l'utilisateur root de supprimer ou de renommer le fichier. Aucun autre utilisateur ne dispose des privilèges pour supprimer le fichier créé par un autre utilisateur.

Il arrive parfois que vous ayez besoin d'un répertoire Linux pouvant être utilisé par tous les utilisateurs du système Linux pour créer des fichiers. Les utilisateurs peuvent créer, supprimer ou renommer des fichiers en fonction de leur convenance dans ce répertoire.

Maintenant, que faire si un utilisateur supprime (ou renomme) accidentellement ou délibérément un fichier créé par un autre utilisateur dans ce répertoire?

Eh bien, pour éviter ce genre de problèmes, le concept de sticky bit est utilisé. Depuis / tmp est utilisé à cette fin. Donc, pour éviter le scénario ci-dessus, / tmp utiliser un peu collant.

Par exemple:

mkdir demo
chmod 777 demo

J'ai également créé deux fichiers avec des utilisateurs différents dans ce dossier ayant la permission 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

Maintenant, allumez le bit collant sur ce

 chmod +t demo/
 ls -ld demo
 drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo

Maintenant, que se passe-t-il si un utilisateur (abhi) veut renommer le 2e utilisateur (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 du mors collant

Sous Linux, le bit sticky a uniquement l’utilisation décrite ci-dessus, dans les répertoires. Historiquement, il était utilisé pour quelque chose de complètement différent sur les fichiers normaux, d'où le nom.

Lorsqu'un programme est exécuté, le chargement du programme en mémoire prend du temps avant que l'utilisateur puisse réellement l'utiliser. Si un programme, par exemple un éditeur, est fréquemment utilisé par les utilisateurs, le délai de démarrage était alors trop élevé.

Pour améliorer ce délai, le sticky bit a été introduit. Le système d'exploitation vérifiait que si le bit collant sur un exécutable était activé, le segment de texte de l'exécutable était conservé dans l'espace d'échange. Cela facilitait le chargement de l'exécutable dans la RAM lorsque le programme était à nouveau exécuté, minimisant ainsi le délai.

Les systèmes modernes tels que Linux gèrent automatiquement leur cache de fichiers exécutables et d’autres fichiers et n’ont pas besoin du bit sticky pour cela.

La source: «Le concept de Linux Sticky Bit expliqué avec des exemples» à The Geek Stuff


22
2018-03-11 13:06





Un stickybit est une méthode de contournement pour les répertoires partagés qui ne doivent pas être supprimés accidentellement. Lorsqu'un répertoire a un stickybit, seul le propriétaire ou la racine peut le supprimer, même si chaque utilisateur peut prendre toutes les autres autorisations.

/tmp est le répertoire le plus partagé entre les processus et les utilisateurs et contient pour cela le stickybit pour s’assurer qu’aucun utilisateur ne peut supprimer le répertoire, même si 777 , et il doit en être ainsi pour permettre aux utilisateurs et aux processus d’utiliser le répertoire sans conflit d’autorisations.


2
2018-03-18 11:14