2 votes

Comment puis-je rendre impossible à une machine Windows de supprimer un répertoire (pas son contenu) sur un serveur Samba Linux?

Le titre dit tout. (Une des rares occasions où ça convient réellement. :P)

2voto

IMB Points 777

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

0voto

martin Points 49

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.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X