J'ai utilisé deluser
sans le paramètre --remove-all-files
:
$ deluser 'user'
Existe-t-il un moyen autre que rm -r /home/user
de supprimer tous les fichiers appartenant à un utilisateur maintenant (puisque j'ai déjà exécuté deluser)?
Vous devrez rechercher manuellement les fichiers, ce qui correspond probablement à ce que deluser
ferait.
Veuillez noter que --remove-all-files
est pas identique à rm -r /home/user
. Ce dernier supprime seulement le répertoire personnel (qui peut inclure des fichiers n'appartenant pas à cet utilisateur, bien que cela ne soit pas habituel), le premier supprime tous les fichiers appartenant à cet utilisateur du système. Du moins si il faut faire confiance à la page de manuel .
GNU find
a un test -user
. Vous pouvez donc faire find / -user xxx
pour trouver tous les fichiers appartenant à l'utilisateur xxx
. xxx
serait le nom d'utilisateur, et peut (et dans ce cas devra , car l'utilisateur n'existe plus) être l'ID numérique de l'utilisateur. find
a également une option -delete
, donc
find / -user xxx -delete
Devrait le faire, bien que je n’ai pas testé la commande avec toutes les options en même temps.
EDIT: Identifiant numérique: La raison pour laquelle j’ai dit que vous deviez utiliser un identifiant numérique est parce que, comme vous avez déjà supprimé l’utilisateur, son entrée dans /etc/passwd
était supprimé (il contenait, avec d'autres éléments, l'ID utilisateur, ainsi que son nom d'utilisateur).
Donc, si vous ne supprimez pas son homedir, l’un des moyens les plus simples est de simplement demander l’ID du propriétaire de cet homedir:
stat -c %u /home/user/
(stat
est un outil pour lire les données du système de fichiers. -c %u
indique à stat
comment écrire sa sortie, je lui demande ici de simplement sortir l'ID utilisateur)
Si vous aimez les one-liners, vous pouvez même chaîner les deux commandes:
find / -user $(stat -c %u /home/user/) -delete
(Bien sûr, vous préférerez peut-être d'abord l'exécuter sans -delete
pour vous assurer de ne rien conserver et de détecter toute erreur que vous avez commise en écrivant le reste de la commande. Les erreurs lors de l'exécution d'opérations de suppression récursives sur /
ne sont pas valables. le faible du coeur.)
Une autre option serait de rajouter l'utilisateur avec adduser
, en spécifiant l'ancien UID, puis de réexécuter deluser
, cette fois avec l'indicateur --remove-all-files
.
Supposons, par exemple, que l'utilisateur ait un nom d'utilisateur alice
et un UID 1001
:
Sudo adduser --uid 1001alice
Sudo deluser --remove-all-files alice
gnu find a les options -nouser et -nogroup, cherchez-les dans man find
. Avec ces options, vous pouvez trouver tous les fichiers de votre/vos système (s) de fichiers qui n'ont pas d'utilisateur correspondant dans/etc/passwd. Si vous n'avez pas créé de nouvel utilisateur avec les anciens UID de vos utilisateurs supprimés, vous avez la possibilité de rechercher ces fichiers orphelins.
Cependant, vous pourriez trouver plus de fichiers, pas seulement ceux ayant appartenu à votre fichier supprimé.