Cor*_*sum 33 linux users ubuntu
我正在使用 Ubuntu 12.04 并进行了一些自定义。我还将使它成为一个新的iso,它是定制的ubuntu。
我想问的是如何更改我的用户名。我当前的主文件夹中有很多配置。所以我不想弄乱更改用户名。
那么是否有任何最佳实践或工作流程可以做到这一点?
小智 37
在真正正确的方式?假设您想将用户“peter”更改为“paul”。
groupadd paul
usermod -d /home/paul -m -g paul -l paul peter
Run Code Online (Sandbox Code Playgroud)
这会将名称、组、主目录和该目录的所有权和组以及所有文件更改为新的。您最终会得到一个与最初创建为“paul”的用户无法区分的用户。
另一种方法是编辑/etc/passwd
和/etc/shadow
文件中彼得条目的第一个字段。然后将每次出现的 'peter' 更改为 'paul' /etc/group
。然后将主目录从 重命名/home/peter
为/home/paul
. 然后chown -R paul /home/paul
获取目录的所有权和组权以及它下的所有文件和目录,以拥有新的。
我建议不要尝试更改用户名。当以用户主目录的形式在配置文件中静态引用用户名时,这通常会带来问题/home/<username>
。这些几乎从不以通用方式编写,因此通常最好只创建一个新用户名,然后将用户的文件和数据迁移到新帐户。
小智 6
使用 usermod 更改用户名和主目录。将用户 peter 更改为 paul:
usermod -l paul peter
grep paul /etc/passwd /etc/shadow # check
Run Code Online (Sandbox Code Playgroud)
更改主目录并将所有内容移至那里(如有必要则创建)
usermod -m -d /home/paul paul
grep paul /etc/passwd # check
Run Code Online (Sandbox Code Playgroud)
更改组名称,但不要使用 usermod,因为它要求您首先创建另一个组(例如 GID 1001),尽管它会更新 $HOME 目录中所有内容的 GID,但您必须搜索并更改具有旧组所有权的其他位置的文件和目录。相反,只需手动更改组名称即可。
nano /etc/group
Run Code Online (Sandbox Code Playgroud)
并改变
peter:x:1000:
Run Code Online (Sandbox Code Playgroud)
到
paul:x:1000:
Run Code Online (Sandbox Code Playgroud)
您必须更改 cron、at 和其他使用用户名而不是 UID 的服务所使用的文件名。使用
find /var -name "*peter*"
Run Code Online (Sandbox Code Playgroud)
来找到这些文件。
您还必须更改某些服务(例如邮件处理应用程序)使用的配置文件。
最后,需要编辑使用“/home/peter/”的脚本。将出现的“/home/peter/”更改为“$HOME”。
更改用户身份并不需要做很多工作,您只需要彻底完成即可。
小智 5
尝试usermod命令。
exec sudo su
usermod --login newname oldname
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
171958 次 |
最近记录: |