CentOS Stream 8的用户权限如何设置
导读:CentOS Stream 8用户权限设置指南 在CentOS Stream 8中,用户权限管理是保障系统安全的核心环节,需遵循最小权限原则,通过用户/组管理、文件权限控制、sudo权限限制及SELinux等多维度实现。以下是具体操作步骤:...
CentOS Stream 8用户权限设置指南
在CentOS Stream 8中,用户权限管理是保障系统安全的核心环节,需遵循最小权限原则,通过用户/组管理、文件权限控制、sudo权限限制及SELinux等多维度实现。以下是具体操作步骤:
一、用户与用户组管理
用户权限的基础是合理划分用户和组。通过以下命令完成基础管理:
- 创建用户:使用
useradd命令创建新用户(-m选项自动创建家目录)。sudo useradd -m newuser - 设置用户密码:通过
passwd命令为用户设置初始密码(需符合复杂度要求)。sudo passwd newuser - 修改用户所属组:使用
usermod命令将用户添加到指定组(-aG表示追加到附加组,避免移除原有组)。sudo usermod -aG developers newuser # 将newuser添加到developers组 - 创建用户组:使用
groupadd命令创建新组。sudo groupadd admins - 删除用户/组:使用
userdel(-r选项同时删除家目录)和groupdel命令。sudo userdel -r olduser # 删除用户及家目录 sudo groupdel oldgroup # 删除组
二、文件与目录权限管理
文件权限决定了用户对资源的访问能力,需通过以下命令调整:
- 查看权限:使用
ls -l命令查看文件/目录的权限、所有者及组信息。ls -l /path/to/file # 示例输出:-rw-r--r-- 1 user group 0 Oct 30 10:00 file - 修改权限(数字表示法):用三位八进制数表示用户(u)、组(g)、其他用户(o)的权限(4=读、2=写、1=执行)。
sudo chmod 755 /path/to/directory # 所有者:rwx(7),组:r-x(5),其他:r-x(5) sudo chmod 640 /path/to/config.conf # 所有者:rw-(6),组:r--(4),其他:---(0) - 修改权限(符号表示法):针对特定用户/组调整权限。
sudo chmod u+x script.sh # 给所有者添加执行权限 sudo chmod g-w data.txt # 移除组的写权限 sudo chmod o=r report.pdf # 给其他用户只读权限 - 修改所有者/组:使用
chown(修改所有者)和chgrp(修改组)命令。sudo chown newuser:newgroup /path/to/file # 同时修改所有者和组 sudo chown root /path/to/systemfile # 仅修改所有者 sudo chgrp developers /path/to/project # 仅修改组 - 特殊权限:
- SUID:使文件执行时具备所有者权限(如
passwd命令)。sudo chmod u+s /usr/bin/find # 设置SUID - SGID:使目录下新建文件继承目录的组(或文件执行时具备组权限)。
sudo chmod g+s /var/www/html # 设置SGID - 粘滞位:防止非所有者删除目录中的文件(如
/tmp)。sudo chmod +t /shared/tmp # 设置粘滞位
- SUID:使文件执行时具备所有者权限(如
三、ACL(访问控制列表)
传统权限无法满足细粒度需求时,可使用ACL为特定用户/组分配权限:
- 安装ACL工具(若未安装):
sudo yum install acl -y - 查看ACL:使用
getfacl命令查看文件/目录的ACL规则。getfacl /path/to/file - 设置ACL:
- 给用户添加权限:
sudo setfacl -m u:alice:rwx /path/to/project # 允许alice读写执行 - 给组添加权限:
sudo setfacl -m g:devs:r-x /path/to/code # 允许devs组读执行 - 删除用户权限:
sudo setfacl -x u:bob /path/to/file # 移除bob的权限
- 给用户添加权限:
四、sudo权限配置
限制普通用户使用sudo执行管理员命令,降低root账户滥用风险:
- 将用户加入sudo组:默认情况下,
wheel组的用户可使用sudo。sudo usermod -aG wheel newuser # 将newuser添加到wheel组 - 自定义sudo权限:使用
visudo命令编辑/etc/sudoers文件(避免语法错误),添加以下内容:- 允许用户执行所有命令(不推荐):
newuser ALL=(ALL) ALL - 限制用户仅能执行特定命令(推荐):
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart apache2, /usr/bin/apt update
注:
NOPASSWD表示执行指定命令时无需输入密码,需谨慎使用。 - 允许用户执行所有命令(不推荐):
五、SELinux配置(可选但推荐)
SELinux提供强制访问控制(MAC),进一步增强权限安全性:
- 检查SELinux状态:
sestatus # 显示SELinux是否启用(Enforcing/Permissive/Disabled) - 临时调整SELinux模式:
sudo setenforce 0 # 临时设置为Permissive模式(不阻止违规操作,仅记录日志) - 永久修改SELinux模式:编辑
/etc/selinux/config文件,将SELINUX=enforcing改为SELinux=permissive(测试环境)或disabled(生产环境需谨慎)。 - 管理SELinux上下文:若文件权限不符合SELinux策略,可使用以下命令修复:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?" # 添加自定义上下文 sudo restorecon -Rv /var/www/html # 恢复默认上下文
六、用户口令策略
强化口令安全性,降低账户被破解风险:
- 设置复杂口令:要求用户使用包含大小写字母、数字和特殊字符(如
@#%)的口令,长度≥10位。 - 检查空口令账号:使用
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用户权限的精细化管理。需定期审计权限设置(如使用auditd监控文件访问),确保符合最小权限原则。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Stream 8的用户权限如何设置
本文地址: https://pptw.com/jishu/738574.html
