跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Linux怎么创建新用户并分配sudo权限 Linux用户权限管理详解

最安全做法是用adduser创建用户再加入sudo组(Ubuntu/Debian)或wheel组(RHEL/CentOS);adduser自动建家目录、设bash shell、提示设密码,而useradd需手动补全多项配置,漏任一导致登录失败。 直接用
adduser
创建用户,再加进
sudo
组(Ubuntu/Debian)或
wheel
组(RHEL/CentOS),是最安全、最不容易漏步骤的做法。别图省事只跑
useradd
就完事——不建家目录、不设密码、不配 shell,用户连登录都做不到。 用 adduser 还是 useradd?选哪个更少出错
adduser
是交互式封装脚本,
useradd
是底层命令。生产环境无脑选
adduser
,它默认做对三件事:
-m
(建家目录)、
/bin/bash
(设默认 shell)、自动调用
passwd
(提示设密码)。而
useradd
默认什么也不干,账户被锁死,得手动补全:
sudo useradd -m -s /bin/bash alice
sudo passwd alice
还得确认
/etc/passwd
里
alice
那行 shell 字段不是
/usr/sbin/nologin
或空 漏掉任意一步,
su - alice
就会失败,或者登录后直接退出。 为什么加了 sudo 组还是执行不了 sudo 命令 加组只是第一步,生效要满足三个条件: 系统发行版决定该信哪个组:
%sudo
行必须在
/etc/sudoers
里且未被注释(Ubuntu/Debian);RHEL 系则认
%wheel
用户必须用
-aG
加入,不是
-G
(后者会清空其他附加组) 组权限不会热加载:要么重新登录终端,要么运行
newgrp sudo
(仅对当前 shell 有效) 常见错误现象:
sudo: sorry, you must have a tty to run sudo
—— 多半是 SSH 连接没分配伪终端,或
requiretty
在
sudoers
里被启用;
usermod -aG sudo alice
后立刻
su - alice
测试却报
Sorry, user alice is not allowed to execute...
,就是没重登录。 CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。 下载 如何验证 sudo 权限是否真正可用 别只信
groups alice
输出里有
sudo
,得实测: 切换过去:
su - alice
查授权范围:
sudo -l
—— 正常应列出
(ALL : ALL) ALL
或具体命令白名单 跑个带输出的命令:
sudo whoami
,返回
root
才算通 如果配置了 NOPASSWD,但
sudo -l
显示需要密码,说明那条规则没生效(比如路径写错、没加
%
符号、visudo 保存时语法报错没注意到) 注意:
sudo -l
不校验密码,但能暴露规则是否被读取;而
sudo whoami
会触发真实认证流程,两者缺一不可。 visudo 编辑时最容易踩的坑 直接
vim /etc/sudoers
是高危操作,文件语法错一个字符,整个 sudo 就瘫痪。必须用
visudo
: 它会在写入前自动运行
sudo visudo -c
检查语法,报错就拦住你 新增规则务必写在
# User privilege specification
下方,别插到 Defaults 区块里 给组授权写
%sudo
,给用户写
alice
,开头多一个
%
就全错 命令路径必须绝对:
/usr/bin/systemctl
≠
systemctl
;多个命令用英文逗号+空格分隔:
/bin/ls, /usr/bin/df
改完保存退出后,立刻执行
sudo visudo -c
再确认一次——这步很多人跳过,结果第二天发现 sudo 不能用了才想起昨晚改过配置。

相关文章