J'ai installé Ubuntu sur un ordinateur qui est maintenant utilisé par quelqu'un d'autre. J'ai renommé le compte avec son nom, mais cela ne modifie que le nom complet, et non le nom d'utilisateur, qui est toujours affiché en haut à droite (dans le fast-user-switch-applet
). Y a-t-il une commande pour renommer un compte d'utilisateur UNIX?
J'ai pensé à créer un nouveau compte d'utilisateur avec le nouveau nom, puis à tout copier dans la maison "ancienne" à la maison du nouveau compte. Serait-ce suffisant? Mais ensuite, je pense que les fichiers auraient le propriétaire des autorisations de l'ancien compte? Alors devrais-je faire chown -R newuser ~
?
Y a-t-il une façon plus simple/recommandée de faire cela?
Essayer
usermod --move-home --login <new-login-name> --home <new-home-dir> <old-login-name>
Les --move-home
Option déplace le contenu de l'ancien annuaire de domicile sur le nouveau donné donné par le --home
option créée si cela n'existe pas déjà.
Si vous souhaitez que le groupe d'utilisateurs primaire correspondre à l'new-login-name
, ajouter --gid <new-login-name>
À la commande ci-dessus, mais le groupe doit être préexistant.
Voir la page Homme pour plus d'informations:
man usermod
Bien qu'il soit possible de renommer un utilisateur, et usermod
_ fera une partie du travail , ceci est assez susceptible de causer des problèmes. Voici une liste d'endroits où le nom d'utilisateur peut apparaître; Je ne prétends pas que cette liste est exhaustive.
/etc/passwd
et fichiers associés (par exemple /etc/shadow
, /etc/master.passwd
)./etc/group
(et /etc/gshadow
)./etc/sudoers
./var/mail/$USER
ou /var/spool/mail/$USER
./var/spool/cron/crontabs/$USER
at
emplois (/var/spool/cron/atjobs/*
)Le répertoire de base est susceptible d'apparaître dans encore plus de lieux. De nombreuses applications écrivent des chemins absolus dans divers fichiers DOT. Si vous décidez de renommer le répertoire de base également (alors qu'il n'y a aucune obligation que l'utilisateur alice
's annuaire de domicile soit /home/alice
, l'avoir soit /home/bob
serait déroutant), vous devrez prendre soin de ceux-ci. Un remplaçant global fonctionnera pour la plupart des applications, mais je ne fais aucune promesse. Si possible, gardez l'ancien nom de répertoire de maison sous forme de lien symbolique au répertoire renommé.
Voici un résumé des commandes que j'ai utilisées sur un système Debian:
groupadd NEW
usermod -l NEW -m -d /home/NEW -g NEW OLD
chfn -f "New Fullname" NEW
cd /home
ln -s NEW OLD
Les deux dernières commandes créent un lien symbolique du nom de l'ancien répertoire de base (/ home/vieux) au nom de la nouvelle (/ home/nouveau).
tout ce qui précède sont des méthodes élégantes, mais pourquoi ne pas simplement créer un nouvel utilisateur, copier tout ce contenu à la maison du premier, et c'est tout? bien sûr, s'il s'agit d'un compte de service (application), ce n'est peut-être pas la meilleure pratique