在管理 Linux 服务器时,用户管理是最基础且高频的任务之一。默认情况下,新系统通常只提供 root 账户。虽然 root 拥有最高权限,但直接使用它进行日常操作具有极高的风险,一次误操作可能导致系统崩溃。
合理的做法是创建一个权限受限的普通用户,并在需要执行管理任务时,通过 sudo 临时提升权限。本文将带你掌握 Ubuntu 环境下创建用户、配置权限以及清理账户的完整流程。
创建新用户
在 Ubuntu 中,推荐使用 adduser 命令。相比于底层的 useradd,adduser 是一个交互式的更高级别工具,它会自动创建家目录(Home Directory)并配置环境。
如果你当前是以 root 用户登录:
adduser <username>
如果你是以具备 sudo 权限的普通用户登录:
sudo adduser <username>
执行命令后,系统会提示以下操作:
- 设置密码:输入并确认新用户的密码。
- 用户信息:输入全名、房间号等(这些是可选的,直接按
ENTER键跳过即可)。 - 确认信息:最后输入
Y确认。
至此,一个基本的普通用户就创建完成了。
分配 Sudo 权限
如果新用户需要执行安装软件、修改系统配置等管理任务,必须将其加入 sudo 组。
方法一:通过用户组分配(推荐)
Ubuntu 默认配置下,sudo 组的所有成员都拥有管理权限。这是最简单且标准的做法。
使用 usermod 命令将用户添加到 sudo 组:
sudo usermod -aG sudo <username>
注:-aG 参数表示“追加到组”,确保不会将用户从原有的其他组中移除。
方法二:通过 visudo 明确指定
如果你希望进行更精细的控制,可以直接编辑 /etc/sudoers 文件。切记:始终使用 visudo 命令来编辑此文件。visudo 会在保存前检查语法错误,防止因配置错误导致所有人都失去管理权限。
执行:
sudo visudo
在文件中找到如下行:
root ALL=(ALL:ALL) ALL
在该行下方添加:
<username> ALL=(ALL:ALL) ALL
保存并退出(如果使用 nano 编辑器,按 Ctrl + X,然后按 Y 确认)。
测试 Sudo 权限
你可以通过切换用户来验证权限是否生效:
su - <username>
尝试运行一个需要 root 权限的命令,并在前面加上 sudo:
sudo apt update
系统会要求输入该用户自身的密码。如果命令成功执行,说明权限配置正确。
删除用户
当某个用户不再需要访问系统时,应及时清理其账户。
仅删除用户账号
如果希望保留该用户产生的文件,仅删除账号本身:
sudo deluser <username>
删除用户及其家目录
如果你想彻底清除用户,包括其个人文档和配置文件,请使用 --remove-home 选项:
sudo deluser --remove-home <username>
清理残留配置
如果你之前通过 visudo 手动为该用户添加了权限行,记得再次运行 visudo 将该行删除,以防未来创建同名用户时意外继承权限。
临时锁定账户
在某些场景下(如员工离职交接),你可能只想临时禁用账号而非永久删除。
锁定密码
锁定后,用户将无法通过密码登录:
sudo passwd -l <username>
解锁则使用:
sudo passwd -u <username>
注意:这只能限制密码登录。如果用户配置了 SSH 密钥对,仍可能通过密钥访问。
禁用 Shell 登录
更彻底的锁定方法是将用户的登录 Shell 改为“不可登录”状态:
sudo usermod -s /usr/sbin/nologin <username>
恢复时将其改回 /bin/bash 即可。
常见问题解答
1. adduser 和 useradd 有什么区别?
adduser 是一个 Perl 脚本,它更智能、更友好,会自动创建家目录、设置默认 Shell 并引导你设置密码。useradd 是底层二进制命令,默认不创建家目录,通常用于脚本自动化。
2. 删除用户后,之前的文件还在吗?
除非使用了 --remove-home,否则文件会保留在 /home/<username> 下。由于原用户已不存在,这些文件在文件系统上会显示为一个“孤儿” UID。
3. 如何查看一个用户属于哪些组?
执行 groups <username> 即可。
总结
高效的用户管理是系统安全的第一道防线。坚持“最小权限原则”,仅为必要的用户分配 sudo 权限,并定期清理闲置账户。通过掌握 adduser、deluser 和 visudo 这三个核心工具,你就能从容应对绝大多数 Ubuntu 运维场景。
关于
关注我获取更多资讯