Manière appropriée de changer le nom d'utilisateur dans Ubuntu ou tout Linux

26

J'utilise Ubuntu 12.04 et j'ai fait une certaine personnalisation. Je vais également en faire un nouvel iso personnalisé ubuntu.

Ce que je veux demander, c'est comment puis-je changer mon nom d'utilisateur. Il y a beaucoup de configuration dans mon dossier d'accueil actuel. Je ne veux donc pas me tromper en changeant de nom d'utilisateur.

Existe-t-il donc une meilleure pratique ou un flux de travail pour ce faire?

Corps calleux
la source
Votre répertoire personnel est souvent créé avec votre nom d'utilisateur, mais vous pouvez changer le nom d'utilisateur sans changer le répertoire personnel en modifiant les premiers éléments des entrées dans / etc / passwd et / etc / shadow. Assurez-vous que vous pouvez vous connecter en tant que root (pas seulement sudo à partir de votre connexion utilisateur) au cas où vous feriez une erreur.
Anthon
que faire si je veux changer le nom du répertoire personnel? et qu'entend-on exactement par dire les premiers éléments?
CorpusCallosum

Réponses:

28

La très bonne façon? Supposons que vous souhaitiez remplacer l'utilisateur «peter» par «paul».

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Cela change le nom, le groupe, le répertoire personnel et la propriété et le groupe de ce répertoire en nouveaux, ainsi que tous les fichiers. Vous vous retrouvez avec un utilisateur qui ne peut pas être créé à l'origine en tant que «paul».

Une autre façon serait de modifier les premiers champs des entrées de Peter dans les fichiers /etc/passwdet /etc/shadow. Puis changez chaque occurrence de 'peter' en 'paul' dans /etc/group. Renommez ensuite le répertoire personnel de /home/peterà /home/paul. Et puis chown -R paul /home/peterpour obtenir les propriétés et les groupes du répertoire et tous les fichiers et répertoires en dessous pour en avoir de nouveaux.

Steve Bergman
la source
3
Pas besoin du chown si vous avez édité / etc / {passwd, shadow, group} - l'inode stocke le propriétaire et les groupes numériquement
Graham Nicholls
5

Je recommanderais de ne pas tenter de changer le nom d'un utilisateur. Ceci est généralement opéré avec des problèmes quand est statiquement référencé le nom de l'utilisateur dans les fichiers de configuration sous forme de répertoire de l'utilisateur, /home/<username>. Ceux-ci ne sont presque jamais écrits de manière générique, il est donc généralement préférable de simplement créer un nouveau nom d'utilisateur, puis de migrer les fichiers et les données de l'utilisateur vers le nouveau compte.

slm
la source
1
Merci pour le commentaire. J'ai créé un nouvel utilisateur et modifié le répertoire utilisateur / groupe et le répertoire personnel concernant l'ancien. il semble que tout fonctionne bien. Pensez-vous que cette méthode peut également causer des problèmes?
CorpusCallosum
3

Essayez la commande usermod .

exec sudo su
usermod --login newname oldname
dgmltn
la source
Faites simplement «sudo quoi que vous alliez faire». Faire sudo su ne journalisera pas correctement les commandes.
Keith Twombley
3

Vous pouvez le changer; voir Comment puis-je changer mon nom d'utilisateur? sur AskUbuntu. Ces instructions ont bien fonctionné pour moi. Pour conserver votre configuration, créez simplement un lien symbolique pour votre ancien répertoire personnel comme décrit dans les réponses à cette question.

z0r
la source
3

Utilisez usermod pour changer le nom d'utilisateur et le répertoire personnel . Changez l'utilisateur Peter en Paul:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

changer le répertoire personnel et y déplacer tout (créé si nécessaire)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Modifiez le nom du groupe , mais n'utilisez pas usermod car il vous oblige à créer d'abord un autre groupe (par exemple, GID 1001) et bien qu'il mettra à jour le GID pour tout dans le répertoire $ HOME, vous devrez rechercher et modifier le fichiers et répertoires ailleurs avec l'ancien groupe de propriété. Au lieu de cela, modifiez simplement le nom du groupe manuellement.

nano /etc/group

et changer

peter:x:1000:

à

paul:x:1000:

Vous devrez modifier les noms de fichiers utilisés par cron, at et d' autres services qui utilisent le nom d'utilisateur au lieu de l'UID. Utilisation

find /var -name "*peter*"

pour trouver ces fichiers.

Vous devrez également modifier les fichiers de configuration utilisés par certains services tels que vos applications de gestion du courrier.

Enfin, les scripts utilisant "/ home / peter /" devront être modifiés. Modifiez les occurrences de "/ home / peter /" en "$ HOME".

Changer l'identité des utilisateurs ne demande pas beaucoup de travail, il vous suffit d'être minutieux.

Duane
la source
Surévalué car c'est la même approche que j'utilise (pour les mêmes raisons en ce qui concerne la préservation de GID). BTW, vous pouvez réellement combiner les deux usermodcommandes en une seule et vous devez également vous rappeler de modifier /etc/gshadowavec /etc/group; Les deux peuvent être modifiés avec GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- ou mieux encore avec sudo groupmod -n newname oldname. Bravo pour mettre en évidence certains des autres problèmes tels que devoir changer manuellement le nom de la crontab de l'utilisateur (s'ils en ont un).
Anthony G - justice pour Monica
Addendum rapide à ceci ... vous ne pouvez pas être connecté en faisant cela. Créez un nouvel utilisateur temporaire faisant partie du groupe sudoers, connectez-vous avec cela, effectuez les modifications, déconnectez-vous du nouveau compte temporaire, connectez-vous à celui renommé et supprimez le compte temporaire.
Janus