Supposons qu'un répertoire dir1
soit créé par Sudo
sur le bureau.
Sudo mkdir dir1
Ensuite, j'ai appliqué chown
et chmod
comme suit:
Sudo chown root:root dir1
Sudo chmod go-rwx dir1
Maintenant, dir1
est uniquement accessible avec le propriétaire root
.
$ ls -ld dir1
drwx------ 2 root root 4096 Jul 29 19:21 dir1
Si l'utilisateur ($USER
= pandya
) tente de supprimer dir1
avec GUI nautilus (sans Sudo
), il ne peut pas ce qui est ok.
Mais si essayé de supprimer avec terminal alors il peut ce qui n'est pas correct: -
rm -r
(sans Sudo
):
$ rm -r dir1
rm: descend into write-protected directory ‘dir1’? Y
rm: remove write-protected directory ‘dir1’? Y
$
Et plus facilement avec rmdir
! (Sans Sudo):
$ rmdir dir1
$
Ainsi, comment empêcher dir1
d'être supprimé avec l'utilisateur que pas Sudo
?
[optionnel]
Mon objectif ultime est le suivant: seul le propriétaire peut supprimer un répertoire, un groupe et d’autres uniquement en lecture/exécution.
Ce qui est dit Class Stacker à sa réponse est correct, mais cela n'a pas résolu votre problème. Pour empêcher un répertoire d'être supprimé par l'utilisateur qui détient tous les droits sur le répertoire parent (/home/pandya
dans votre cas), vous devez utiliser la commande chattr
.
Voici un exemple:
$ Sudo mkdir dir1
$ Sudo chattr +i dir1
$ rmdir dir1
rmdir: failed to remove ‘dir1’: Operation not permitted
$ rm -r dir1
rm: remove write-protected directory ‘dir1’? y
rm: cannot remove ‘dir1’: Operation not permitted
$ chattr -i dir1
chattr: Permission denied while setting flags on dir1
Et dans Nautilus:
Veuillez lire man chattr
pour plus d'informations.
En fait, les répertoires sont des fichiers spéciaux.
Dans un répertoire /home/user
, le droit de créer ou de supprimer des entires (tels que des fichiers ou des répertoires) est déterminé par les droits de /home/user
lui-même et non par les droits des entrées.
Dans votre cas, il serait préférable de fournir un sous-répertoire, tel que /home/user/fixed
, et de définir les droits de celui-ci sur r-x
. Ensuite, l'utilisateur sera incapable de créer ou de supprimer des fichiers ou des répertoires. Il peut toujours être en mesure d’éditer, de descendre, etc. en fonction des droits des fichiers et des répertoires individuels à l’intérieur de /home/user/fixed
.