Le titre dit tout. (Une des rares occasions où ça convient réellement. :P)
Réponses
Trop de publicités?Un vieux truc du côté de Linux pourrait fonctionner ici :
mkdir StayingAlive
sudo touch StayingAlive/.CantTouchThis
sudo chattr +i StayingAlive/.CantTouchThis
La clé ici est l'attribut immuable sur .CantTouchThis
(vous voudrez probablement un nom plus sérieux, comme .rootfile
). Cet attribut empêche le fichier d'être supprimé (ou même modifié) - même root ne peut pas le supprimer sans d'abord supprimer l'attribut. Ce fichier empêchera le répertoire d'être vidé, et donc l'empêchera d'être supprimé.
Quand j'ai fait cela dans le passé, j'ai généralement aussi changé la propriété du dossier et donné l'accès à l'utilisateur via le bit setgid (g+s) - bien que la raison derrière cela m'échappe pour le moment
sudo chown root.utilisateur StayingAlive
sudo chmod g+sw StayingAlive
Pour supprimer un répertoire, il doit être vide et vous devez avoir des permissions d'écriture sur le répertoire parent.
Vous pouvez donc empêcher le répertoire de se vider comme STW l'a suggéré, ou vous pouvez vous assurer que l'utilisateur n'a pas les permissions d'écriture sur le répertoire parent, qu'il n'est pas autorisé à supprimer.
Si vous avez un répertoire nommé /foo/bar
et un fichier nommé /foo/bar/file
, un utilisateur avec des permissions d'écriture sur /foo/bar
peut supprimer le fichier. Mais des permissions d'écriture sur /foo/bar
ne signifient pas des permissions pour supprimer /foo/bar
, supprimer nécessiterait des permissions d'écriture sur /foo
.