Les fichiers qui ne sont attribués à aucun nom d'utilisateur sont considérés comme un risque pour la sécurité.
Comment est-ce possible et comment pourrait-il être exploité?
Edit: Ma question n'est pas un double de la question mentionnée parce que ma question se concentre sur le processus de création d'utilisateur au lieu de se concentrer sur le principe du moindre privilège.
Sur un système Linux, vous pouvez facilement supprimer un utilisateur sans avoir à supprimer les fichiers appartenant à cet utilisateur. Un tel fichier restera en place et l'ID utilisateur du propriétaire du fichier (qui est stocké en tant qu'attribut de inode ) reste inchangé. De cette façon, un fichier peut devenir sans propriétaire.
Si vous créez ensuite un utilisateur avec le même ID, l'utilisateur deviendra automatiquement le propriétaire des fichiers précédemment orphelins. C'est ainsi qu'un nouvel utilisateur peut involontairement (ou avec une intention malveillante) devenir le propriétaire de fichiers qu'il ne devrait pas posséder, ce qui est évidemment mauvais pour la sécurité.
Notez que userdel
dispose d'un commutateur supplémentaire pour supprimer les utilisateurs avec leurs fichiers, mais il supprimera uniquement les fichiers de certains emplacements fixes, comme le répertoire personnel:
-r, --remove
Files in the user's home directory will be removed along with
the home directory itself and the user's mail spool. Files
located in other file systems will have to be searched for
and deleted manually.
Vous pouvez utiliser find
avec le -nouser
commutateur pour découvrir des fichiers avec un propriétaire inexistant:
-nouser
No user corresponds to file's numeric user ID.
Voici une démo rapide sur Arch Linux.
Ajoutons un utilisateur alice
et faisons-lui le propriétaire d'un fichier foo
.
[root @ box /] # useradd alice [root @ box /] # touch foo [root @ box /] # chown alice foo [root @box /] # ls -l foo - rw-r - r-- 1 racine alice 0 5 janvier 02:59 foo
Supprimons maintenant alice
.
[root @ box /] # userdel alice [root @ box /] # ls -l foo - rw-r - r-- 1 1001 root 0 5 janv. 02:59 foo
ls
ne peut pas déterminer le nom du propriétaire et affiche simplement l'ID numérique du propriétaire 1001
. Ajoutons maintenant un nouvel utilisateur bob
.
[root @ box /] # useradd bob [root @ box /] # ls -l foo - rw-r - r-- 1 bob root 0 5 janv. 02:59 foo
Étant donné que bob
a reçu le prochain ID utilisateur gratuit, il est désormais automatiquement le propriétaire du fichier.