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