Comment le superutilisateur peut-il créer un fichier / répertoire inscriptible pour lui-même?

8

Les utilisateurs normaux peuvent chmodfichiers pour les rendre inaccessibles comme

evgeniy@ubuntu:~$ touch test
evgeniy@ubuntu:~$ chmod 444 test
evgeniy@ubuntu:~$ echo 'test' > test
bash: test: Permission denied

Peut-on simuler quelque chose comme ça pour l'utilisateur root?

dolzenko
la source
J'espère que non, ou je suis sûr de le faire.
Mark Allen
Allez-y et vérifiez la réponse de @ danlefree;)
dolzenko

Réponses:

13

chattr +i *empêchera même le compte root d'apporter des modifications aux fichiers du répertoire (jusqu'à ce qu'il chattr -i *soit exécuté).

Selon les commentaires de Slartibartfast, quelques choses que vous devez savoir sur chattr et l'attribut immuable:

  1. Le bit immuable empêchera un fichier d'être supprimé, renommé, lié ou écrit dans; utiliser lsattrpour afficher les attributs de la même manière lsaffiche la propriété et les autorisations
  2. Vous pouvez empêcher le bit immuable d'être non défini (même par root) en changeant le CAP_LINUX_IMMUTABLEdrapeau - pour ce faire, vous voudrez installer libcap , mais c'est juste un avertissement juste que les capacités sont mal documentées (au mieux)
danlefree
la source
Il convient de mentionner dans le but d'aider les gens à trouver cette réponse que chattr + i rend le fichier immuable.
Slartibartfast
5

SELinux peut être utilisé pour marquer un fichier comme non inscriptible par root dans le domaine actuel et le rôle utilisateur.

Ignacio Vazquez-Abrams
la source
Donner un exemple serait formidable
Jonathan