Ubuntu系统admin用户名

在Ubuntu安装过程中,有一个创建用户帐号的步骤,也就是创建一个可以通过 sudo 切换为 root 的用户帐号。但是,因为在某些Linux预设中 admin 是一个保留的系统组名,所以安装程序不允许创建 admin 帐号。

但是,我在 FreeBSD 以及 RedHat Linux 中通常都设置一个 admin 帐号来作为日常用户帐号,不仅通用而且明确是用于可以通过 sudo 升级为 root 的特定帐号。

例如,在FreeBSD系统中,我使用 admin 帐号的id如下:

在FreeBSD中当前admin用户的id
uid=1000(admin) gid=1000(admin) groups=44(video),1000(admin)

而对比Ubuntu系统,当前我在Installer过程中创建的 huatai 帐号的id如下:

在Ubuntu中当前huatai用户的id
uid=1000(huatai) gid=1000(huatai) groups=1000(huatai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd)

可以看到其实两者用户的id是完全一致的(uid/gid都是1000),差别仅在名字上(强迫症不能忍),所以调整Ubuntu的用户名相对比较简单。

  • 激活 root 登录: sudo passwd root ,这样确保能够只使用root登录系统,完全在系统中退出 huatai 帐号就能够修改名字

  • 如果通过 ssh服务 远程登录系统,还需要配置 /etc/ssh/sshd_config 确保 PermitRootLogin 设置正确(默认是 prohibit-password ),也就是需要为root用户添加密钥认证,以便能够远程登录

  • 先确保 root 用户能够登录系统(本地或ssh),然后退出所有以 huatai 用户登录的会话:

在root用户直接登录的会话里面杀掉所有huatai的会话
pkill -u huatai
  • 修改组名:

修改组名
# -n 参数表示 --new-name NEW_GROUP
groupmod -n admin huatai
  • 修改用户名以及HOME目录: 会同步修改 /etc/passwd 中登录名,并将 /home/huatai 重命名为 /home/admin

修改用户名
# -l 表示 --login NEW_LOGIN 即修订成新的登录名
# -d 表示 --home HOME_DIR 即修订成新的HOME目录
# -m 表示 --move-home 移动home目录的内容到新的位置,只能和 -d 参数配合使用
usermod -l admin -d /home/admin -m huatai
  • (可选)修改用户的Full Name:

修改用户的Full Name
chfn -f "Admin" admin
  • 其他需要检查:

需要对系统做一些检查,确保不因为修改用户名影响运行
# 检查HOME目录下是否有脚本引用了旧路径
grep -r "/home/huatai" /home/admin

# 检查 /etc/sudoers 是否有配置旧用户名的设置,通常只要admin用户在 sudo 组就能满足设置
groups admin
# 确保输出中包含 sudo

# 部分桌面环境(如 GNOME)可能会缓存旧的头像或显示名称
# 刷新账号服务缓存
systemctl restart accounts-daemon