centos stream8用户权限怎么管
CentOS Stream 8用户权限管理指南
在CentOS Stream 8中,用户权限管理需遵循“最小权限原则”,通过用户与组管理、文件/目录权限控制、sudo权限配置及SELinux增强等步骤,确保系统安全与稳定性。
一、用户与用户组基础管理
1. 创建与管理用户
- 创建用户:使用
useradd
命令,可指定家目录、默认shell等选项(如-m
自动创建家目录、-s
设置shell)。
示例:sudo useradd -m -s /bin/bash newuser
(创建名为newuser
的用户,附带家目录,使用bash shell)。 - 设置密码:通过
passwd
命令为用户设置强密码(需包含大小写字母、数字、特殊字符,长度≥10位)。
示例:sudo passwd newuser
。 - 修改用户信息:使用
usermod
命令调整用户属性,如更改家目录、shell或追加组。
示例:sudo usermod -d /new/home/newuser -s /bin/zsh newuser
(修改家目录与shell);sudo usermod -aG developers newuser
(将用户追加到developers
组,-a
避免移除原有组)。 - 删除用户:使用
userdel
命令,-r
选项可同时删除家目录及内容。
示例:sudo userdel -r olduser
(彻底删除olduser
)。
2. 管理用户组
- 创建组:使用
groupadd
命令创建新组。
示例:sudo groupadd admins
(创建admins
组)。 - 添加/移除用户到组:通过
usermod
(添加)或gpasswd
(移除)调整用户组归属。
示例:sudo usermod -aG admins newuser
(将newuser
加入admins
组);sudo gpasswd -d newuser admins
(从admins
组移除newuser
)。 - 删除组:使用
groupdel
命令。
示例:sudo groupdel admins
(删除admins
组)。
二、文件与目录权限控制
1. 修改权限(chmod)
使用chmod
命令设置文件/目录的**读(r)、写(w)、执行(x)**权限,格式为chmod [权限值] 文件/目录
。常见权限值:
755
:所有者(rwx)、组(r-x)、其他用户(r-x)(适用于目录,如/var/www
);644
:所有者(rw-)、组(r–)、其他用户(r–)(适用于普通文件,如/etc/passwd
)。
示例:sudo chmod 755 /opt/myapp
(设置/opt/myapp
目录权限为755)。
2. 更改属主与属组(chown/chgrp)
- 修改属主:使用
chown
命令更改文件/目录的所有者。
示例:sudo chown newuser /path/to/file
(将/path/to/file
的所有者改为newuser
)。 - 修改属组:使用
chown
(同时改属主与属组)或chgrp
(仅改属组)命令。
示例:sudo chown newuser:developers /path/to/file
(将属主设为newuser
,属组设为developers
);sudo chgrp admins /path/to/dir
(将/path/to/dir
的属组改为admins
)。
3. 查看权限(ls)
使用ls -l
命令查看文件/目录的权限详情(如-rw-r--r--
表示所有者可读写,组与其他用户仅可读)。
示例:ls -l /etc/passwd
(查看/etc/passwd
的权限与归属)。
三、sudo权限精细化配置
1. 将用户加入sudo组
默认情况下,wheel
组的用户可使用sudo
执行管理员命令。将用户加入wheel
组即可授予权限:
sudo usermod -aG wheel username
。
2. 自定义sudo权限(visudo)
使用visudo
命令编辑/etc/sudoers
文件(避免语法错误导致系统无法使用sudo),通过用户/组别名与命令别名限制sudo权限范围。
示例:
# 允许developers组的用户执行所有命令(无需密码)
%developers ALL=(ALL) NOPASSWD: ALL
# 限制admin用户仅能重启httpd服务
admin ALL=(ALL) /usr/bin/systemctl restart httpd
四、SELinux增强权限管理
SELinux(Security-Enhanced Linux)提供强制访问控制(MAC),进一步限制进程权限。
1. 检查SELinux状态
使用sestatus
命令查看SELinux是否启用(Enforcing
表示强制模式,Permissive
表示宽松模式)。
示例:sestatus
。
2. 临时/永久修改SELinux模式
- 临时关闭:
sudo setenforce 0
(立即生效,重启后恢复)。 - 永久关闭:编辑
/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
(需重启系统)。
3. 调整SELinux上下文
若应用无法访问特定目录(如Apache访问/data/web
),需修改SELinux上下文:
- 添加上下文规则:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/data/web(/.*)?"
(将/data/web
及其子目录的SELinux类型设为httpd_sys_rw_content_t
)。 - 应用上下文:
sudo restorecon -Rv /data/web
(递归恢复目录的SELinux上下文)。
五、密码策略强化
1. 设置复杂密码要求
编辑/etc/login.defs
文件,调整以下参数:
PASS_MIN_LEN 12 # 密码最小长度(建议≥12位)
PASS_MIN_DAYS 1 # 密码修改间隔(至少1天)
PASS_WARN_AGE 7 # 密码过期前警告天数(提前7天)
2. 检查空口令账户
使用awk
命令查找/etc/shadow
中的空口令账户(第二字段为空),并强制设置密码:
awk -F: '($2 == "") {
print $1}
' /etc/shadow
(列出空口令用户);sudo passwd username
(为username
设置密码)。
3. 保护口令文件
使用chattr
命令将/etc/passwd
、/etc/shadow
等文件设为不可修改(防止非授权删除或篡改):
sudo chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
;若需修改,可先取消不可修改属性(sudo chattr -i 文件
)。
六、其他安全措施
- 限制SSH访问:编辑
/etc/ssh/sshd_config
,禁用root远程登录、限制允许登录的用户:
重启SSH服务使配置生效:PermitRootLogin no AllowUsers your_username PermitEmptyPasswords no
sudo systemctl restart sshd
。 - 定期更新系统:使用
sudo yum update
命令更新系统与软件包,修补安全漏洞。
通过以上步骤,可实现CentOS Stream 8用户权限的精细化管理,平衡系统可用性与安全性。操作前需确认具备root权限,避免误操作影响系统运行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos stream8用户权限怎么管
本文地址: https://pptw.com/jishu/721375.html