更改用户名和主目录名称

更改用户名和主目录名称

我更改了用户的用户名。

命令:

killall -u 用户名
usermod -l 新用户名 旧用户名
groupmod -n 新组名称 旧组名称
usermod -d /home/新用户名-m 新用户名
usermod -c “新名称” new_username

chown 新用户名:新组名 .Xauthority

我想知道将主目录从 更改为/home/test/ 是否/home/ubuntu/会影响任何应用程序。

我已经安装了 RVM、Ruby、Rails、Oracle 和其他一些软件。

答案1

它应该可以工作。

某些应用程序会将绝对路径名存储在其配置文件或其他文件中。您必须手动更改这些文件或重新设置应用程序的用户特定部分。

您可以按如下方式搜索这些文件(至少是将路径名存储为文本的文件):

find /home/new_username -type f -exec egrep -H '/home/old_username' {} \;

该命令不会修复文件。它只会帮您找到它们。您可以使用它sed来更改文件。类似以下内容:

find /home/new_username -type f -exec egrep -l '/home/old_username' {} \;|xargs sed -i 's%/home/old_username%/home/new_username/‌​;g'

请先测试。

请注意,有些文件可能看起来像文本文件,但实际上是二进制文件。对这些文件进行搜索和替换可能会破坏它们。

注意:您不需要使用chown -R new_username:new_groupname /home/new_username将新主目录中文件的所有权转移给新用户,因为“新用户”的 UID 与“旧用户”相同,因此这些文件已归“新用户”所有。

答案2

对我唯一有用的是:

sudo gedit /etc/passwd

sudo gedit /etc/group

并手动做出了我想要的更改!

答案3

小更新:您必须先创建(如果不存在)管理员帐户或激活 root 帐户。输入该帐户并继续。还要耐心等待。有些进程不会立即被终止。稍等片刻,因为 usermod -l 会失败,提示您仍有一些进程正在运行。再次重复 killall

相关内容