我正在使用 Ubuntu 12.04 并进行了一些定制。我也会把它做成一个新的iso,这是定制的ubuntu。
我想问的是如何更改我的用户名。我当前的主文件夹中有很多配置。所以我不想因为更改用户名而搞砸。
那么有没有最佳实践或工作流程可以做到这一点?
答案1
这真的正确的方法?假设您要将用户“peter”更改为“paul”。
groupadd paul
usermod -d /home/paul -m -g paul -l paul peter
这会将名称、组、主目录以及该目录的所有权和组以及所有文件更改为新的。您最终会得到一个与最初创建为“paul”的用户无法区分的用户。
另一种方法是编辑/etc/passwd
和/etc/shadow
文件中 Peter 条目的第一个字段。然后将 中每次出现的“peter”更改为“paul” /etc/group
。然后将主目录从 重命名/home/peter
为/home/paul
.然后chown -R paul /home/paul
获取目录及其下的所有文件和目录的所有权和分组关系以获取新的文件和目录。
答案2
我建议不要尝试更改用户名。当用户名以用户主目录 . 的形式在配置文件中静态引用时,通常会出现问题/home/<username>
。这些几乎从未以通用方式编写,因此通常最好只创建一个新用户名,然后将用户的文件和数据迁移到新帐户。
答案3
使用 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”。
更改用户身份并不需要做很多工作,您只需要彻底完成即可。
答案4
您可以更改它;请参阅如何更改我的用户名?在 AskUbuntu 上。这些指示对我来说很有效。要保留您的配置,只需为您的旧主目录创建一个符号链接,如该问题的答案中所述。