Dieu, racine, quelle est la différence? ars.userfriendly.org/cartoons/?id=19981111 En pratique, un fichier que même root ne pourrait pas supprimer par la suite serait un rêve pour les auteurs de logiciels malveillants.
Dan est en train de jouer par Firelight le
Je suis d'accord que le formatage @DanNeely Plus est aussi une forme de suppression d'un fichier;)
Rinzwind
Réponses:
3
Essayer:
chattr +i filename
Cependant, cela rendra le fichier non supprimable, même par l' rootutilisateur - à utiliser avec prudence.
en le faisant, touch test && chattr +i testil génère une erreur; chattr: Operation not permitted while setting flags on test. Vous en avez besoin sudo. À côté de cela: il est toujours possible de supprimer le fichier: sudo chattr -i test && rm testfonctionne.
Rinzwind
23
Non, ce n'est pas possible. Impossible pour les utilisateurs normaux de supprimer un fichier: bien sûr.
Vous devrez sudoempêcher les utilisateurs de supprimer des fichiers. Votre administrateur pourra toujours supprimer un fichier.
sudo chattr +i testpeut empêcher la suppression mais nécessite sudo. Un simple sudo chattr -i testpermet de supprimer le fichier. Aucun autre utilisateur que l'administrateur ne peut utiliser chattr.
Et ... simplement redémarrer et passer en mode de sauvetage permettra à cette personne de supprimer ce fichier. Ce serait un risque pour la sécurité s'il existait une méthode pour ne jamais pouvoir supprimer un fichier.
C'est un peu grossier, mais c'est proche - si vous supprimez l'accès en écriture sur le répertoire, les fichiers qu'il contient ne peuvent pas être supprimés. Et cela ne nécessite pas sudosi vous le possédez:
Cela ressemble exactement à ce que le PO voulait. (Bien que pourquoi ils le voulaient, je ne suis pas sûr.) Les utilisateurs peuvent lire, modifier et exécuter les fichiers, mais ne peuvent pas les dissocier (supprimer).
Eliah Kagan du
8
Pour supprimer un fichier, vous devez disposer d'une autorisation d'écriture sur tous les répertoires auxquels ce fichier est lié. Pour le dissocier d'un répertoire, vous devez disposer d'une autorisation d'écriture sur ce répertoire.
Donc, tant que vous accordez une autorisation d'écriture (ou même la propriété) au fichier mais pas au répertoire ou aux répertoires auxquels ce fichier est lié, ce fichier ne peut pas être supprimé.
La meilleure façon d'y parvenir serait de lier ce fichier à un répertoire qui appartient à root et qui n'est accessible en écriture à personne. Vous pourriez le faire appartenir à vous à la place, ce qui signifierait que vous et root pourriez le supprimer.
Cela permettrait toujours à d'autres utilisateurs de lier ce fichier à d'autres répertoires et de le dissocier de celui-ci par la suite, mais ils ne pourraient toujours pas supprimer le fichier car ils seraient en mesure de le dissocier de votre propre répertoire.
Notez que pour que cela fonctionne pleinement, l'autorisation d'écriture de chaque composant de chemin d'accès au fichier doit être contrôlée. Parce que, par exemple, si le fichier l'est /a/b/the-fileet que /a/bpersonne ne peut l'écrire mais que tout le monde y a accès en écriture /a, il peut alors renommer /a/bautre chose et recréer le sien /a/bet y créer le sien /a/b/the-file.
Réponses:
Essayer:
Cependant, cela rendra le fichier non supprimable, même par l'
root
utilisateur - à utiliser avec prudence.la source
touch test && chattr +i test
il génère une erreur;chattr: Operation not permitted while setting flags on test
. Vous en avez besoinsudo
. À côté de cela: il est toujours possible de supprimer le fichier:sudo chattr -i test && rm test
fonctionne.Non, ce n'est pas possible. Impossible pour les utilisateurs normaux de supprimer un fichier: bien sûr.
Vous devrez
sudo
empêcher les utilisateurs de supprimer des fichiers. Votre administrateur pourra toujours supprimer un fichier.sudo chattr +i test
peut empêcher la suppression mais nécessitesudo
. Un simplesudo chattr -i test
permet de supprimer le fichier. Aucun autre utilisateur que l'administrateur ne peut utiliserchattr
.Et ... simplement redémarrer et passer en mode de sauvetage permettra à cette personne de supprimer ce fichier. Ce serait un risque pour la sécurité s'il existait une méthode pour ne jamais pouvoir supprimer un fichier.
la source
C'est un peu grossier, mais c'est proche - si vous supprimez l'accès en écriture sur le répertoire, les fichiers qu'il contient ne peuvent pas être supprimés. Et cela ne nécessite pas
sudo
si vous le possédez:Vous pouvez donc définir des autorisations sur le fichier lui-même comme vous le souhaitez.
En outre, comme l'a déclaré @Rinzwind, il existe certainement de nombreuses façons de le contourner.
la source
Pour supprimer un fichier, vous devez disposer d'une autorisation d'écriture sur tous les répertoires auxquels ce fichier est lié. Pour le dissocier d'un répertoire, vous devez disposer d'une autorisation d'écriture sur ce répertoire.
Donc, tant que vous accordez une autorisation d'écriture (ou même la propriété) au fichier mais pas au répertoire ou aux répertoires auxquels ce fichier est lié, ce fichier ne peut pas être supprimé.
La meilleure façon d'y parvenir serait de lier ce fichier à un répertoire qui appartient à root et qui n'est accessible en écriture à personne. Vous pourriez le faire appartenir à vous à la place, ce qui signifierait que vous et root pourriez le supprimer.
Cela permettrait toujours à d'autres utilisateurs de lier ce fichier à d'autres répertoires et de le dissocier de celui-ci par la suite, mais ils ne pourraient toujours pas supprimer le fichier car ils seraient en mesure de le dissocier de votre propre répertoire.
Notez que pour que cela fonctionne pleinement, l'autorisation d'écriture de chaque composant de chemin d'accès au fichier doit être contrôlée. Parce que, par exemple, si le fichier l'est
/a/b/the-file
et que/a/b
personne ne peut l'écrire mais que tout le monde y a accès en écriture/a
, il peut alors renommer/a/b
autre chose et recréer le sien/a/b
et y créer le sien/a/b/the-file
.la source