CentOS Stream 8用户权限设置详解
一、用户与组管理:权限分配基础
用户权限管理的核心是用户-组-权限的绑定,需先完成用户和组的创建与关联。
1. 创建用户与组
- 创建用户:使用
useradd命令,-m选项自动创建用户主目录(如/home/username)。
示例:sudo useradd -m newuser - 创建组:使用
groupadd命令创建用户组。
示例:sudo groupadd devgroup - 设置用户密码:通过
passwd命令为用户设置初始密码(需符合复杂度要求)。
示例:sudo passwd newuser
2. 关联用户与组
- 添加用户到附加组:使用
usermod -aG命令(-a表示追加,避免移除原有组)。
示例:将newuser添加到devgroup组:sudo usermod -aG devgroup newuser - 修改用户主组:使用
usermod -g命令(-g指定主组,会覆盖原有主组)。
示例:将newuser的主组改为devgroup:sudo usermod -g devgroup newuser - 查看用户组信息:通过
id命令查看用户的UID、GID及所属组。
示例:id newuser
二、文件/目录权限设置:控制访问级别
文件/目录的权限分为**读(r)、写(w)、执行(x)**三类,分别对应用户(owner)、组(group)、其他用户(others)三级权限。
1. 查看权限
使用ls -l命令查看文件/目录的详细权限信息(如-rw-r--r--表示所有者有读写权限,组和其他用户有读权限)。
示例:ls -l /path/to/file
2. 修改权限(chmod命令)
- 符号表示法:通过
u(用户)、g(组)、o(其他)、a(所有)指定对象,+(添加)、-(移除)、=(设置)权限。
示例:给所有者添加执行权限:sudo chmod u+x script.sh - 数字表示法:用三位八进制数表示权限(4=读、2=写、1=执行),如
755表示所有者有rwx,组和其他用户有r-x。
示例:设置目录为755权限:sudo chmod 755 /path/to/dir
3. 修改所有者/组(chown/chgrp命令)
- 修改所有者:使用
chown命令,格式为chown new_owner:group file(可同时修改所有者和组)。
示例:将file.txt的所有者改为admin,组改为devgroup:sudo chown admin:devgroup file.txt - 仅修改组:使用
chgrp命令。
示例:将file.txt的组改为devgroup:sudo chgrp devgroup file.txt
4. 特殊权限设置
- SUID(Set User ID):使文件执行时临时拥有所有者的权限(如
/usr/bin/passwd)。
示例:sudo chmod u+s /path/to/executable - SGID(Set Group ID):使文件执行时拥有所属组的权限,或目录下新建文件继承目录的组。
示例:sudo chmod g+s /path/to/dir - 粘滞位(Sticky Bit):用于目录,确保只有文件所有者能删除/重命名自己的文件(如
/tmp目录)。
示例:sudo chmod +t /path/to/dir
三、高级权限控制:ACL与sudo
传统权限无法满足细粒度需求时,可使用ACL(访问控制列表)和sudo机制。
1. ACL(访问控制列表)
- 查看ACL:使用
getfacl命令查看文件/目录的ACL规则。
示例:getfacl /path/to/file - 设置ACL:使用
setfacl命令添加/删除权限。
示例:给用户alice添加读写权限:sudo setfacl -m u:alice:rw /path/to/file
示例:给组devgroup添加读权限:sudo setfacl -m g:devgroup:r /path/to/file
示例:删除用户bob的权限:sudo setfacl -x u:bob /path/to/file
2. sudo权限配置
- 将用户加入sudo组:默认情况下,
wheel组的用户可使用sudo执行管理员命令。
示例:sudo usermod -aG wheel username - 自定义sudo规则:使用
visudo命令编辑/etc/sudoers文件(避免语法错误),添加特定命令的权限。
示例:允许deploy用户无需密码执行systemctl restart nginx:
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
四、SELinux与安全加固
SELinux(安全增强型Linux)提供强制访问控制(MAC),进一步提升系统安全性。
1. 检查SELinux状态
使用sestatus命令查看SELinux是否启用及模式(Enforcing/Permissive/Disabled)。
示例:sestatus
2. 临时/永久修改SELinux模式
- 临时关闭:
sudo setenforce 0(重启后恢复) - 永久关闭:编辑
/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled(需重启系统)
3. 调整SELinux策略
若需允许应用访问特定目录,可使用semanage fcontext添加策略,再用restorecon应用。
示例:允许httpd服务访问/var/www/html/custom目录:sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/custom(/.*)?"sudo restorecon -Rv /var/www/html/custom
五、用户口令策略:防范弱密码风险
弱密码是系统安全的重大隐患,需通过以下措施强化口令安全。
1. 设置复杂口令
要求用户口令包含大写字母、小写字母、数字、特殊字符,长度≥10位。可通过passwd命令强制用户修改口令:sudo passwd -e username(强制下次登录修改)
2. 检查空口令账号
使用awk命令查找/etc/shadow文件中空口令的账户(第二字段为空),并强制设置口令:awk -F: '($2 == "") {print $1}' /etc/shadow
3. 保护口令文件
使用chattr命令给/etc/shadow文件添加不可更改属性,防止非授权修改:sudo chattr +i /etc/shadow(如需修改,需先取消属性:sudo chattr -i /etc/shadow)
以上步骤覆盖了CentOS Stream 8用户权限管理的核心场景,遵循最小权限原则(仅授予必要权限),可有效提升系统安全性。操作前建议备份重要数据,避免误操作导致系统故障。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1447158.html