Ubuntu虚拟机用户权限管理指南
在Ubuntu虚拟机中,用户权限管理是保障系统安全的核心环节,主要涉及用户账户管理、权限类型配置及安全策略实施三大维度。以下是具体操作流程与最佳实践:
使用adduser
命令创建新用户(交互式操作,自动创建主目录):
sudo adduser username
系统会提示设置密码及可选信息(如全名、房间号等),按需填写即可。若需强制指定用户组(如developers
组),可添加-g
参数:
sudo adduser username -g developers
使用userdel
命令删除用户,-r
参数可同时删除主目录及邮件文件:
sudo userdel -r username # 彻底删除用户及关联数据
sudo userdel username # 仅删除用户账户(保留主目录)
passwd
命令(需管理员权限):sudo passwd username # 设置/修改用户密码
usermod
的-l
参数:sudo usermod -l new_username old_username # 更改用户名
usermod
的-c
参数(修改全名等描述信息):sudo usermod -c "New Full Name" username
Ubuntu采用用户-组-其他三级权限模型,通过usermod
命令将用户添加至特定组以赋予权限:
sudo usermod -aG sudo username # -aG表示追加至组(避免移除原有组)
groupadd
命令:sudo groupadd groupname # 创建新组
groups
命令:groups username # 显示用户所属的所有组
chown
命令(需管理员权限):sudo chown username:groupname /path/to/file # 修改文件所有者及所属组
chmod
命令(支持符号或数字表示法):
sudo chmod u+x file # 给所有者添加执行权限
sudo chmod g+w file # 给组添加写权限
sudo chmod o-r file # 移除其他用户的读权限
sudo chmod 755 /home/username # 所有者有rwx权限,组及其他有r-x权限
sudo
组(最常用方式):sudo usermod -aG sudo username
/etc/sudoers
文件(使用visudo
命令,避免语法错误):sudo visudo
在文件中添加以下内容,可实现无密码sudo(谨慎使用)或限制特定命令:username ALL=(ALL) NOPASSWD: ALL # 无密码执行所有命令
username ALL=(ALL) /usr/bin/apt # 仅允许执行apt命令
若需更细粒度的权限(如允许特定用户访问某文件),可使用访问控制列表(ACL):
sudo tune2fs -o acl /dev/sdXn # 替换为实际分区(如/dev/sda1)
setfacl
命令:sudo setfacl -m u:username:rwx /path/to/file # 给用户添加rwx权限
sudo setfacl -m g:groupname:r-x /path/to/dir # 给组添加r-x权限
getfacl
命令:getfacl /path/to/file
禁止root远程登录:编辑SSH配置文件(/etc/ssh/sshd_config
),设置:
PermitRootLogin no # 禁止root用户通过SSH登录
PasswordAuthentication yes # 允许密码认证(若需密钥认证,可设为no)
修改后重启SSH服务:
sudo systemctl restart sshd
定期审查权限:使用以下命令查看用户及组信息,及时清理闲置账户:
cat /etc/passwd # 查看所有用户
cat /etc/group # 查看所有组
sudo passwd -S username # 查看用户状态(是否锁定)
设置强密码策略:使用pwquality
工具(Ubuntu默认安装)配置密码复杂度:
sudo nano /etc/security/pwquality.conf
修改以下参数(示例):
minlen = 12 # 最小长度12位
dcredit = -1 # 至少1个数字
ucredit = -1 # 至少1个大写字母
lcredit = -1 # 至少1个小写字母
ocredit = -1 # 至少1个特殊字符
通过以上步骤,可实现对Ubuntu虚拟机用户权限的有效管理,兼顾系统安全性与用户灵活性。