J'ai utilisé deluser
sans le paramètre --remove-all-files
:
$ deluser 'user'
Existe-t-il un autre moyen que rm -r /home/user
de supprimer tous les fichiers appartenant à un utilisateur maintenant (puisque j'ai déjà exécuté deluser)?
la source
J'ai utilisé deluser
sans le paramètre --remove-all-files
:
$ deluser 'user'
Existe-t-il un autre moyen 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 était probablement ce deluser
qui ferait.
Veuillez noter que ce --remove-all-files
n'est pas la même chose que rm -r /home/user
. Ce dernier supprime uniquement l'homedir (qui peut inclure des fichiers n'appartenant pas à cet utilisateur, bien que ce ne soit pas habituel), le premier supprime tous les fichiers appartenant à cet utilisateur du système. Au moins si la page de manuel doit être approuvée .
GNU find
a un -user
test, 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 , comme l'utilisateur n'existe plus) être l'ID numérique de l'utilisateur. find
a également une -delete
option, donc
find / -user xxx -delete
Devrait le faire, même si je n'ai pas testé la commande avec toutes les options en même temps.
EDIT: ID numérique: La raison pour laquelle j'ai dit que vous devez utiliser un ID numérique est parce que, comme vous avez déjà supprimé l'utilisateur, son entrée a /etc/passwd
été supprimée (il y avait, avec d'autres éléments, l'ID utilisateur, ainsi que son nom d'utilisateur) .
Donc, si vous n'avez pas supprimé son homedir, l'un des moyens les plus simples consiste à simplement demander l'ID du propriétaire de ce 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, ici je lui demande simplement de sortir l'ID utilisateur)
Si vous aimez les monolignes, vous pouvez même enchaîner les deux commandes:
find / -user $(stat -c %u /home/user/) -delete
(Bien sûr, vous préférerez peut-être l'exécuter en premier sans -delete
pour vous assurer qu'il n'y a rien que vous souhaitez conserver et pour détecter toute erreur que vous avez commise lors de l'écriture du reste de la commande. Les erreurs lors de la suppression des opérations récursives /
ne sont pas pour les faibles de coeur.)
-exec
option de recherche pour exécuter une commande rm personnalisée si vous voulez un peu plus de contrôle sur vos suppressions, mais je n'ai jamais essayé cela, donc YMMV.rm
aidexargs
(mais cela atteindra probablement les limites d'argument s'il y a trop de résultats), mais regardez-depth
, en citant le manuel d'informations: "Si votre commande` find 'supprime les répertoires, vous pouvez constater que vous obtenez un message d'erreur parasite lorsque `find 'essaie de récupérer dans un répertoire qui a été supprimé. L'utilisation de l'option` -depth' résoudra normalement ce problème. " (et plus tard dans la même section, "(" -delete "implique" -depth "de toute façon)")find: 'user' is not the name of a known use
/etc/passwd
qui répertorie l'utilisateur et son ID. Vous devrez trouver l'identifiant numérique. Faitesstat -c %u /home/user/
, il devrait vous donner l'ID utilisateur numérique, utilisez-le commexxx
ci-dessus.Une autre option serait de rajouter l'utilisateur avec
adduser
, en spécifiant l'ancien UID, puis de relancerdeluser
, cette fois avec l'--remove-all-files
indicateur.Supposons, par exemple, que l'utilisateur ait un nom d'utilisateur
alice
et un UID1001
:la source
gnu find a les options -nouser et -nogroup, recherchez-le dans
man find
. Avec ces options, vous pouvez trouver tous les fichiers de votre ou vos systèmes de fichiers qui n'ont pas d'utilisateur correspondant dans / etc / passwd. Si vous n'avez pas créé un nouvel utilisateur avec les anciens uids de vos utilisateurs supprimés, c'est une possibilité de trouver ces fichiers orphelins.Cependant, vous pourriez trouver plus de fichiers - pas seulement ceux qui appartenaient à votre fichier supprimé.
la source