用户权限管理

用户管理原则

在服务器生产环境中,强烈建议

  • 禁止 Root 直接登录(详?SSH 安全加固
  • 为每个运维人员创建独立的个人账号
  • 通过 Sudo 进行权限提权
  • 实施最小权限原则(Least Privilege

1. 用户与组基础操作

创建用户并指定家目录
sudo useradd -m -d /home/developer developer
修改用户密码
sudo passwd developer
创建用户
sudo groupadd devops
将用户添加到附加
sudo usermod -aG devops developer
删除用户(及其家目录
sudo userdel -r developer

2. 详解 Sudo 提权配置

sudo linux 中最安全的管理权限分配工具。不要直接编?/etc/sudoers,推荐使用 visudo?

1

快速将用户设为管理

银河麒麟服务器中 wheel 组默认拥?sudo 权限

sudo usermod -aG wheel username
2

细粒度权限控

执行 sudo visudo。在底部添加配置

# 允许 developer 用户仅重?Nginx 且无需密码
developer ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

# 允许 devops 组执行所有网络管理命?
%devops ALL=(ALL) /usr/sbin/ip, /usr/sbin/nmcli

3. 文件系统权限 (ACLs)

当传统的 ugo/rwx 权限无法满足需求时,可以使用ACL(访问控制列表)

查看文件 ACL 记录
getfacl /data/project
为指定用户添加权限(即使该用户不是所有者)
setfacl -m u:testuser:rwx /data/project
递归移除所?ACL 权限
setfacl -b /data/project

常见问题解答

Q: 用户登录后命令行只显示 $ 符号

A: 说明该用户的默认 Shell 设置不正确(通常?/bin/sh)? 解决方法 sudo usermod -s /bin/bash username

Q: 密码连续输错被锁定了怎么办?

A: 麒麟系统带有名为 pam_faillock 的安全策略? 查看锁定状态:sudo faillock --user username 手动解锁 sudo faillock --user username --reset

Q: 如何设置密码有效?and 强制更改密码

A: 设置下次登录必须修改密码 chage -d 0 username 设置密码90天过期:chage -M 90 username