GNU/Linux >> Tutoriels Linux >  >> Linux

Autoriser tous les utilisateurs à créer des fichiers dans un répertoire, mais seul le propriétaire peut supprimer

Le morceau collant peut faire plus ou moins ce que vous voulez. De man 1 chmod :

L'indicateur de suppression restreinte ou sticky bit est un bit unique, dont l'interprétation dépend du type de fichier. Pour les répertoires, cela empêche les utilisateurs non privilégiés de supprimer ou de renommer un fichier dans le répertoire à moins qu'ils ne soient propriétaires du fichier ou du répertoire ; c'est ce qu'on appelle l'indicateur de suppression restreinte pour le répertoire, et se trouve généralement sur les répertoires accessibles en écriture par le monde comme /tmp.

Autrement dit, la présence du sticky bit sur un répertoire permet uniquement de renommer ou de supprimer les fichiers contenus si l'utilisateur est soit le propriétaire du fichier, soit le propriétaire du répertoire contenant (ou l'utilisateur est root).

Vous pouvez appliquer le sticky bit (qui est représenté par octal 1000, ou t ) comme ceci :

# instead of your chmod 755
chmod 1777 directory

# or, to add the bit to an existing directory
chmod o+t directory

La plupart /tmp les répertoires sont créés avec ce type d'ensemble d'autorisations.

Vous voulez que le monde soit un peu "collant". La manière symbolique de définir ce bit est la suivante :

# chmod ugo+w,+t directory

La manière "modale" est :

# chmod 1777 directory
# ls -ld directory
drwxrwxrwt  2 root  wheel  2 Oct 21 17:06 directory/

Linux
  1. Comment créer un répertoire partagé pour tous les utilisateurs sous Linux

  2. Supprimer tous les fichiers d'un dossier sauf le dernier (le plus récent) 20 ?

  3. Comment supprimer tous les fichiers avec une extension particulière dans un dossier particulier ?

  4. Obtenir tous les fichiers sauf les fichiers du tableau - Bash ?

  5. Script bash pour supprimer tous les fichiers sauf N lorsqu'ils sont triés par ordre alphabétique

Supprimez tous les fichiers sauf les 3 plus récents dans le script bash

Comment supprimer tous les fichiers d'un répertoire sauf certains ?

Supprimer tous les fichiers aléatoires sauf 1000 dans un répertoire

Autoriser le propriétaire à créer et à lire des fichiers, mais pas à les modifier ni à les supprimer

Quel est le moyen le plus rapide de supprimer tous les fichiers et sous-dossiers d'un répertoire ?

Comment puis-je supprimer tous les fichiers d'un répertoire lorsqu'il signale une liste d'arguments trop longue