GNU/Linux >> Tutoriels Linux >  >> Linux

UNIX / Linux :Comment utiliser Sticky Bit sur un répertoire et un fichier

Vous définiriez le sticky bit principalement sur les répertoires sous UNIX/Linux.

Si vous définissez le sticky bit sur un répertoire, les autres utilisateurs ne peuvent pas supprimer ou renommer les fichiers (ou sous-répertoires) de ce répertoire.

Lorsque le sticky bit est défini sur un répertoire, seuls le propriétaire et l'utilisateur root peuvent supprimer/renommer les fichiers ou répertoires de ce répertoire.

1. Définissez le sticky bit sur Directory

L'exemple ci-dessous active le sticky bit sur un répertoire.

Utilisez la commande chmod pour définir le sticky bit. Si vous utilisez les nombres octaux dans chmod, donnez 1 avant de spécifier d'autres privilèges numérotés, comme indiqué ci-dessous. L'exemple ci-dessous donne l'autorisation rwx à l'utilisateur, au groupe et aux autres (et ajoute également le sticky bit au répertoire).

$ chmod 1777 dir

Ou, vous pouvez attribuer uniquement un sticky bit à un répertoire existant (sans toucher à aucun autre utilisateur, groupe et autres privilèges) à l'aide de la commande chmod comme indiqué ci-dessous.

$ chmod +t dir

Une fois que le sticky bit est attribué à un répertoire, vous verrez (t) comme dernier caractère de l'autorisation. Dans cet exemple, c'est drwxrwxrwt.

$ ls -ld /home/bala/dir
drwxrwxrwt 2 bala bala 4096 2011-01-28 14:09 /home/bala/dir
$ ls -l dir
total 8
-rwxrwxrwx 1 bala   bala   20 2011-01-28 14:12 bala.txt
-rwxrwxrwx 1 guest guest 41 2011-01-28 14:13 guest.txt

Dans l'exemple ci-dessus, comme dir a la permission rwx pour tout le monde, tous les autres utilisateurs sont autorisés à créer leurs fichiers ou répertoires sous ce répertoire. Cependant, même lorsque les sous-répertoires ou les fichiers sous dir ont l'autorisation rwx pour tout le monde, seul le propriétaire de ceux-ci peut supprimer ou renommer ces fichiers et répertoires. Les autres utilisateurs ne peuvent pas le supprimer ou le renommer à cause du sticky bit.

Dans l'exemple ci-dessus, bala.txt a rwx pour les utilisateurs, les groupes et autres. Mais, lorsque l'utilisateur invité essaie de supprimer le fichier bala.txt, il verra le message "Opération non autorisée" comme indiqué ci-dessous.

$ su guest
Password:
$ cd /home/bala/dir1
$ rm bala.txt
rm: cannot remove `bala.txt': Operation not permitted

Veuillez noter que /tmp a le sticky bit activé par défaut. Vous ne l'avez peut-être pas remarqué jusqu'à présent. Vous savez maintenant pourquoi le répertoire /tmp est censé avoir le sticky bit activé.

$ ls -ld /tmp
drwxrwxrwt 3 root root 4096 Jan 31 08:29 /tmp

Pour supprimer le sticky bit d'un répertoire, procédez comme suit.

$ chmod -t dir

2. Définissez le sticky bit sur Fichier

Définir le sticky bit sur un fichier est pratiquement inutile et ne fait rien. Sur certaines des anciennes versions *nix, un fichier exécutable activé par sticky bit sera chargé dans la mémoire d'échange après la 1ère exécution, ce qui accélère toutes les exécutions ultérieures. Ce n'est plus vrai.

De Wikipédia :

Currently, this behavior is only operative in HP-UX, NetBSD, and UnixWare. 
Solaris appears to have abandoned this in 2005.[citation needed] The 4.4-Lite 
release of BSD retained the old sticky bit behavior but it has been subsequently 
dropped from OpenBSD (as of release 3.7) and FreeBSD (as of release 2.2.1); 
it remains in NetBSD. 

No version of Linux has ever supported the traditional behavior.

Linux
  1. Comment installer et utiliser Flatpak sous Linux

  2. Comment installer et utiliser Traceroute sous Linux

  3. Pourquoi utilisons-nous "./" (point Slash) pour exécuter un fichier sous Linux/unix ?

  4. Linux - Comment inspecter les informations de structure de répertoire d'un fichier Unix/linux ?

  5. Comment activer l'indexation de fichiers et de répertoires apache sous Linux ou UNIX ?

Comment installer et utiliser PuTTY sous Linux

Comment installer et utiliser phpMyAdmin sous Linux

Comment créer et utiliser un fichier d'échange sous Linux

Comment installer et utiliser la commande fd sous Linux

Comment installer et utiliser Nu Shell sous Linux

Comment utiliser gzip sous Linux ?