当前位置: 首页>>技术教程>>正文


在Ubuntu或任何Linux中更改用户名的正确方法

, ,

问题描述

我正在使用Ubuntu 12.04并进行了一些自定义。我还将使其成为定制的ubuntu的新iso。

我想问的是如何更改用户名。我当前的主文件夹中有很多配置。所以我不想弄乱更改用户名。

那么,有什么最佳实践或工作流程吗?

最佳思路

真正正确的方法?假设您要将用户’peter’更改为’paul’。

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

这会将名称,组,主目录以及该目录的所有权和组以及所有文件更改为新目录。最后,您得到的用户与最初创建为’paul’的用户没有区别。

另一种方法是编辑/etc/passwd/etc/shadow文件中peter条目的第一字段。然后在/etc/group中将每次出现的’peter’更改为’paul’。然后将主目录从/home/peter重命名为/home/paul。然后chown -R paul /home/peter获取该目录及其下所有文件和目录的所有权和分组关系,以拥有新目录。

次佳思路

我建议不要尝试更改用户名。当以用户主目录/home/<username>的形式在配置文件中静态引用用户名时,通常会产生问题。这些几乎永远不会以通用方式编写,因此通常最好只是创建一个新的用户名,然后将用户的文件和数据迁移到新帐户中。

第三种思路

尝试使用usermod命令。

exec sudo su
usermod --login newname oldname

第四种思路

您可以更改它;请参阅AskUbuntu上的How do I change my username?。这些指示对我来说效果很好。要保留您的配置,只需为旧主目录建立符号链接,如该问题的答案中所述。

第五种思路

使用usermod更改用户名和主目录。将用户peter更改为paul:

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

更改主目录并将所有内容移到那里(如有必要,创建)

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

更改组名,但不要使用usermod,因为它要求您首先创建另一个组(例如GID 1001),尽管它将更新$ HOME目录中所有内容的GID,但您必须搜索并更改具有旧组所有权的其他文件和目录。相反,只需手动更改组名。

nano /etc/group

并改变

peter:x:1000:

paul:x:1000:

您将必须更改cron,at和其他使用用户名而不是UID的服务使用的文件名。采用

find /var -name "*peter*"

查找这些文件。

您还必须更改某些服务(例如邮件处理应用程序)使用的配置文件。

最后,将需要编辑使用”/home/peter/”的脚本。将”/home/peter/”的发生更改为”$HOME”。

更改用户身份并不是很多工作,您只需要做到周密。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9211.html,未经允许,请勿转载。