在CentOS Stream 8中,用户权限管理需遵循最小权限原则,通过用户/组管理、文件权限控制、sudo权限配置及SELinux等机制,确保系统安全。以下是具体操作步骤:
用户权限的基础是合理划分用户和组。常用命令如下:
useradd命令创建新用户(-m选项自动创建家目录)。sudo useradd -m newuser  # 创建用户newuser并生成家目录
passwd命令为用户设置初始密码。sudo passwd newuser  # 交互式设置密码
usermod命令将用户添加到指定组(-aG表示追加到附加组,避免移除原有组)。sudo usermod -aG developers newuser  # 将newuser添加到developers组
groupadd命令创建新组。sudo groupadd developers  # 创建developers组
userdel删除用户(-r选项同时删除家目录),groupdel删除组。sudo userdel -r olduser  # 删除olduser及家目录
sudo groupdel oldgroup   # 删除oldgroup
文件权限控制需明确所有者、所属组、其他用户的三类权限(读r、写w、执行x),常用命令如下:
ls -l命令查看文件/目录的权限详情(如-rw-r--r--表示所有者有读写权限,组和其他用户有读权限)。ls -l /path/to/file  # 查看文件权限
sudo chmod 755 /path/to/directory  # 所有者:rwx(7),组和其他用户:r-x(5)
sudo chmod 644 /path/to/file       # 所有者:rw-(6),组和其他用户:r--(4)
u)、组(g)、其他用户(o)或所有用户(a)增减权限,例如:sudo chmod u+x script.sh  # 给所有者添加执行权限
sudo chmod g-w config.ini # 移除组的写权限
chown修改文件所有者,chgrp修改所属组(可同时修改两者)。sudo chown newuser:newgroup /path/to/file  # 同时修改属主和属组
sudo chown newuser /path/to/file         # 仅修改属主
sudo chgrp newgroup /path/to/file        # 仅修改属组
/usr/bin/passwd),命令:chmod u+s file。/var/www),命令:chmod g+s directory。/tmp),命令:chmod +t directory。sudo允许普通用户以root身份执行特定命令,需通过visudo命令安全编辑/etc/sudoers文件:
/etc/sudoers中添加以下行(无需密码):username ALL=(ALL) NOPASSWD: ALL  # username可执行所有命令
/usr/bin/apt和/usr/bin/systemctl:username ALL=(ALL) NOPASSWD: /usr/bin/apt, /usr/bin/systemctl  # 限制命令范围
sudo组成员拥有sudo权限,可通过usermod添加:sudo usermod -aG sudo newuser  # 将newuser加入sudo组
SELinux提供强制访问控制(MAC),进一步增强权限安全性:
sestatus命令查看是否启用(Enforcing为启用状态)。sestatus  # 输出SELinux状态
setenforce命令(重启后恢复)。sudo setenforce 0  # 临时设置为Permissive模式(仅记录不阻止)
/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled(需重启系统)。sudo vi /etc/selinux/config  # 修改SELINUX配置
semanage和restorecon:sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"  # 添加SELinux上下文
sudo restorecon -Rv /var/www/html  # 恢复目录的SELinux上下文
强密码是权限安全的第一道防线,需遵循以下规则:
awk命令查找/etc/shadow中的空口令账户(第二字段为空),并强制设置密码:awk -F: '($2 == "") {print $1}' /etc/shadow  # 查找空口令用户
sudo passwd emptyuser  # 为emptyuser设置密码
chattr命令将/etc/shadow设为不可修改(防止非授权删除或修改)。sudo chattr +i /etc/shadow  # 锁定文件
sudo chattr -i /etc/shadow  # 解锁文件(需修改时)
通过以上步骤,可实现CentOS Stream 8用户权限的精细化管理。操作前需确认备份重要数据,避免误操作导致系统故障。