温馨提示×

ubuntu镜像中用户权限设置指南

小樊
54
2025-11-10 20:58:28
栏目: 智能运维

Ubuntu镜像中用户权限设置指南

一、基础权限管理:用户与组配置

1. 用户账户管理

  • 创建普通用户:使用adduser命令创建用户(自动创建家目录并设置默认shell),例如创建名为ubuntu_user的用户:
    sudo adduser ubuntu_user(执行后会提示设置密码及个人信息,可直接回车跳过可选项)。
  • 设置sudo权限:将用户加入sudo组(Ubuntu默认sudo组拥有root权限),命令:
    sudo usermod -aG sudo ubuntu_user-aG表示追加到组,避免移除原有组)。
  • 删除用户:使用deluser命令(保留家目录需加--remove-home参数),例如:
    sudo deluser ubuntu_usersudo deluser --remove-home ubuntu_user

2. 用户组管理

  • 创建用户组:使用groupadd命令,例如创建dev_group
    sudo groupadd dev_group
  • 添加用户到组:使用usermod命令,例如将ubuntu_user加入dev_group
    sudo usermod -aG dev_group ubuntu_user
  • 移除用户从组:使用gpasswd命令,例如:
    sudo gpasswd -d ubuntu_user dev_group

二、文件与目录权限控制

1. 基础权限设置

  • 查看权限:使用ls -l命令查看文件/目录权限(如-rw-r--r--表示所有者有读写权限,组和其他用户有读权限)。
  • 修改权限:使用chmod命令,常见用法:
    • 给所有者添加执行权限:chmod u+x script.sh
    • 给所有用户读权限:chmod a+r file.txt
    • 设置目录权限为755(所有者可读写执行,其他用户可读执行):chmod 755 /path/to/dir
  • 修改所有者/所属组:使用chown(修改所有者)或chgrp(修改所属组),例如:
    sudo chown ubuntu_user:dev_group /path/to/file(同时修改所有者和组)。

2. 细粒度权限控制(ACL)

  • 启用ACL:若文件系统未启用ACL,需先挂载时添加acl选项(如/dev/sda1挂载到/):
    sudo tune2fs -o acl /dev/sda1,然后修改/etc/fstab文件添加acl选项(永久生效)。
  • 设置ACL权限:使用setfacl命令,例如:
    • ubuntu_user添加对/data目录的读写执行权限:sudo setfacl -m u:ubuntu_user:rwx /data
    • 设置默认ACL(新创建的文件/目录继承父目录权限):sudo setfacl -m d:u:ubuntu_user:rwx /data

三、sudo权限精细化管理

  • 安全编辑sudoers文件:使用visudo命令(避免语法错误导致所有sudo失效),例如添加以下内容:
    • 允许ubuntu_user无密码执行所有命令:ubuntu_user ALL=(ALL) NOPASSWD:ALL
    • 允许dev_group组成员以root身份执行/usr/bin/apt命令:%dev_group ALL=(root) /usr/bin/apt
  • 注意事项:避免直接编辑/etc/sudoers文件,必须使用visudo

四、远程访问权限控制(SSH)

  • 禁用root远程登录:编辑SSH配置文件/etc/ssh/sshd_config,修改以下参数:
    PermitRootLogin no(禁止root通过密码登录),若需密钥登录可设置为without-password
  • 重启SSH服务:修改后重启服务使配置生效:
    sudo systemctl restart sshd

五、高级权限管理(可选)

1. AppArmor/SELinux

  • AppArmor:Ubuntu默认启用,用于限制程序权限(如限制nginx只能访问/var/www目录),配置文件位于/etc/apparmor.d/
  • SELinux:若需启用,可通过sudo apt install selinux-basics selinux-policy-default安装,然后运行sudo selinux-activate激活。

2. Polkit(PolicyKit)

  • 用途:控制系统范围权限(如允许普通用户挂载USB设备),配置文件位于/etc/polkit-1/localauthority/50-local.d/,例如创建10-usb-mount.pkla文件:
    [Allow USB Mount]
    Identity=unix-user:*
    Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.filesystem-mount-system
    ResultAny=yes
    ResultInactive=yes
    ResultActive=yes
    

3. 审计与监控

  • 安装auditd:用于记录系统活动(如文件访问、用户登录),命令:
    sudo apt install auditd audispd-plugins
  • 查看审计日志:使用ausearch命令,例如查看最近的sudo使用记录:
    sudo ausearch -k sudo

0