ubuntu虚拟机如何设置权限
小樊
32
2025-12-28 04:45:51
Ubuntu 虚拟机权限设置实用指南
一 用户与用户组管理
- 创建用户:使用交互式命令创建并自动建立主目录
sudo adduser username
- 赋予管理员权限:将用户加入 sudo 组(Ubuntu 推荐做法)
sudo usermod -aG sudo username
- 创建与删除组:
sudo groupadd groupname
sudo groupdel groupname
- 修改用户信息:改名、改主目录等
sudo usermod -l newusername oldusername
sudo usermod -d /new/home/directory testuser
- 启用 root(不建议长期使用):
sudo passwd root
- 切换为 root 环境:
sudo -i(模拟登录,加载 root 环境)或 sudo su(切换用户,不加载环境)
以上命令覆盖了虚拟机中最常用的用户与组管理操作,适用于 VMware/VirtualBox 等平台的 Ubuntu 系统。
二 文件与目录权限
- 修改权限(符号与数字两种方式):
chmod u+x file(给所有者加执行)
chmod g+w file(给组加写)
chmod o-r file(移除其他用户的读)
chmod 755 file(所有者 rwx,组和其他 r-x)
- 修改所有者和所属组:
sudo chown username:groupname /path/to/file
sudo chown -R username:groupname /path/to/dir(递归)
- 目录与脚本的可执行:目录通常需要 x 才能进入;脚本需有 x 才能执行,且首行声明解释器(如 #!/bin/bash)
- 常用查看:
ls -l 查看权限与属主
groups username 查看用户所属组
以上为 Linux 标准的 rwx 模型与常用命令,适用于虚拟机内的日常权限配置。
三 sudo 与 sudoers 精细化控制
- 推荐方式:将用户加入 sudo 组即可获得完整 sudo 能力。
- 精细化授权:使用 visudo 编辑 /etc/sudoers,避免语法错误导致系统无法获取 sudo
- 允许用户执行所有命令(谨慎):
username ALL=(ALL) NOPASSWD: ALL
- 仅允许特定命令(最小权限):
username ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl restart nginx
- 审计与排错:sudo 操作会记录到 /var/log/auth.log,可用于审计与问题追踪
通过 visudo 进行受控授权,是虚拟机环境中既安全又灵活的做法。
四 远程访问与 SSH 权限
- 安装并启动 SSH 服务:
sudo apt update && sudo apt install -y openssh-server
sudo systemctl enable --now ssh
- 限制可登录用户:编辑 /etc/ssh/sshd_config
AllowUsers username
- 安全建议:禁止 root 远程登录
PermitRootLogin no
- 应用配置:
sudo systemctl restart ssh
以上设置可在虚拟机开放远程管理的同时降低风险。
五 ACL 与高级安全建议
- ACL 细粒度授权(当文件需对特定用户开放权限时):
- 设置 ACL:
sudo setfacl -m u:username:rwx /path/to/file
- 查看 ACL:
getfacl /path/to/file
- 文件系统支持:确保分区挂载时启用 ACL(ext4/xfs 通常默认支持)
sudo tune2fs -o acl /dev/sdXn(将 /dev/sdXn 替换为实际分区)
- 账户安全与审计:
- 禁用/启用账户:
sudo passwd -l username(锁定)
sudo passwd -u username(解锁)
- 定期审查:
cat /etc/passwd、cat /etc/group、sudo passwd -S username
- 日志审计:
sudo tail -f /var/log/auth.log
ACL 能在“用户-组-其他”之外提供更灵活的授权,适合多人协作或多服务共存的虚拟机环境。