用户管理基础概念
在centos系统中,用户和权限管理是维护服务器安全的核心环节,每个用户对应独立的操作权限,通过合理分配权限,可避免误操作或恶意行为对系统造成损害,理解用户创建与权限分配逻辑,是管理员必备技能。

**一、用户添加操作指南
CentOS提供两种常用命令创建用户:useradd
与adduser
。useradd
是底层工具,adduser
则是交互式脚本(部分系统可能需手动安装)。
1. 使用useradd创建用户
- sudo useradd -m username # -m参数自动创建用户家目录
- sudo passwd username # 设置用户密码
通过-m
参数确保用户拥有独立的工作目录,密码需满足复杂度要求,建议8位以上,包含字母、数字及符号。
2. 设置用户附加信息
如需指定用户UID、家目录路径或登录Shell,可添加参数:
- sudo useradd -u 1001 -d /custom_home/username -s /bin/bash username
-u
:自定义用户UID(需确保唯一性)

-d
:指定家目录路径
-s
:定义默认Shell类型
3. 验证用户信息
创建完成后,检查/etc/passwd
文件或使用命令:
- id username # 查看用户UID、GID及所属组
- finger username # 显示用户详细信息(需安装finger工具)
**二、用户权限管理逻辑
权限管理的核心在于控制用户对文件、目录及系统资源的访问能力,CentOS通过用户组、文件权限位及sudo机制实现多层控制。
1. 用户组管理

创建新用户组
- sudo groupadd dev_team # 创建名为dev_team的组
将用户加入组
- sudo usermod -aG dev_team username # -aG表示追加用户到组,避免覆盖原有组
通过groups username
可查看用户所属的所有组。
2. 分配sudo权限
允许普通用户执行特权命令需编辑/etc/sudoers
文件:
- sudo visudo # 安全编辑sudoers文件
添加以下内容:
- username ALL=(ALL) NOPASSWD: ALL # 允许用户无需密码执行所有命令
- %dev_team ALL=(ALL) ALL # 允许整个组执行特权命令
注意:避免直接修改sudoers文件,使用visudo
可防止语法错误导致系统锁死。
3. 文件与目录权限
通过chmod
和chown
调整权限归属:
修改所有者
- sudo chown username:dev_team /path/to/file # 同时修改属主和属组
设置权限位
- chmod 755 /path/to/directory # 所有者可读/写/执行,其他人可读/执行
权限数字含义:
4
:读(r)
2
:写(w)
1
:执行(x)
组合相加后,三位数分别代表所有者、所属组、其他用户的权限。
**三、安全增强建议
1、最小权限原则
仅授予用户完成任务所需的最低权限,开发人员无需数据库服务器的root权限。
2、定期审查账户
使用lastlog
检查近期登录用户,删除闲置账户:
- sudo userdel -r old_user # -r参数同时删除家目录
3、禁用root远程登录
编辑/etc/ssh/sshd_config
,设置PermitRootLogin no
并重启SSH服务。
4、使用密钥认证替代密码
通过SSH密钥对提升登录安全性,避免暴力破解风险。
个人观点
权限管理本质是平衡效率与安全的过程,过度限制会阻碍正常操作,放任权限则可能引发系统性风险,建议结合自动化工具(如Ansible)批量管理用户,并定期通过审计日志(如/var/log/secure
)追踪异常行为,对于团队协作场景,可引入RBAC(基于角色的访问控制)模型,将权限与角色绑定而非直接关联用户,从而简化运维复杂度,技术手段之外,制定明确的权限申请流程与责任制度同样关键。