减少root 的登入 : sudo

本文深入探讨了如何配置sudo以提高系统安全性,包括配置文件解释、个人ID使用技巧及查看sudo日志的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

还是先看一下sudo 的配置文件:

/etc/sudoers

root@a05scpgapp01/etc>cat sudoers  
#s file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
 
# Host alias specification
 
# User alias specification
User_Alias      U_SYSADMIN_AIX = aaa, bbb, ccc  (specify the login user and user sudo command)
 
# Cmnd alias specification
Cmnd_Alias      C_AIX_COMMANDS_SET1 = /usr/bin/ls,/usr/bin/cat,/usr/bin/showmount,/usr/bin/find,/usr/bin/du,/usr/bin/tar,/usr/bin/gzip,/usr/bin/compress,/usr/bin/uncompress,/usr/bin/gunzip,/usr/bin/nohup,/usr/bin/dsmc,/usr/bin/dsmadmc,/usr/bin/dsmcad,/opt/tivoli  (specify the indirect command afer sudo which can be used)
 
Cmnd_Alias      SUDOSUDO = /usr/local/bin/sudo,/usr/bin/sudo  (specify the sudo installed path)
# Defaults specification
 
# Runas alias specification
Runas_Alias     U_FUNCTION_SA = ibmsa, sudouser  (sudo login brigde ID, exmple: sudo -u sudouser su -)
 
# User privilege specification
root    ALL=(ALL) ALL
U_SYSADMIN_AIX ALL=(ALL) NOPASSWD:C_AIX_COMMANDS_SET1
U_SYSADMIN_AIX ALL=(U_FUNCTION_SA) NOPASSWD:/usr/bin/su
 
# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL) ALL
 
# Same thing without a password
# %wheel        ALL=(ALL) NOPASSWD: ALL
 
# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
ALL ALL=!SUDOSUDO
#logging
Defaults syslog=auth
Defaults log_year, logfile=/var/log/sudo.log
root@a05scpgapp01/etc>

--------------------------------


When I used my personal Id to test:
error:
sudo not find:

solution:
Add the "path" into the personal ID path:
vi /home/id/.profile
add : /usr/local/bin to PATH
export PATH

make the .profile take effect: . .profile

 

sudo 对安全性还是很有好处的,对于login 的记录,可以看/var/log/sudo.log

 

<think>嗯,用户遇到了在Linux系统中执行sudorootpasswd时出现的commandnotfound错误。从用户提供的引用来看,问题核心在于sudo无法识别passwd命令的环境变量配置错误。用户主要引用资料指出两个关键点:1引文[1]提到sudo只能执行系统内置命令,而passwd确实是系统命令,排除命令类型问题2引文[2]指出/etc/sudoers中的secure_path配置决定了sudo的搜索路径当前需要重点排查/etc/sudoers配置和实际命令路径的匹配情况。passwd通常位于/usr/bin,如果secure_path缺失该路径就会出现问题。考虑到用户使用了rootpasswd这种语法,需要特别注意root账户下的PATH可能与普通用户不同。引文[3]显示root录时的环境变量配置PS1,暗示不同用户的shell初始化文件差异可能影响PATH。解决方案应分三个层次展开:首先检查命令基础可用性-确认passwd实际存在且可执行其次验证sudo环境配置-重点核查/etc/sudoers的secure_path设置最后处理PATH变量异常-特别关注root用户的.bashrc等配置文件用户能提供具体错误输出会更好,但当前信息已足够构建完整的解决方案链。需要提醒用户不同Linux发行版配置路径可能存在差异。</think> 根据引用资料分析,`sudo root passwd` 出现 **command not found** 的根本原因在于环境变量配置错误或`sudo`权限限制。以下是系统级的解决方案: ### 解决步骤 1. **验证 `passwd` 路径** 💻 执行: ```bash $ which passwd ``` ✅ 正常输出应为 `/usr/bin/passwd`。若无输出,需重新安装`passwd`: ```bash $ su - root # 切换到root账户 # apt install passwd # Debian/Ubuntu # yum install passwd # CentOS/RHEL ``` 2. **检查 sudo 安全路径** 📁 编辑`sudo`配置文件: ```bash $ sudo visudo # 或 sudo nano /etc/sudoers ``` 🔍 查找 `secure_path` 行,确保包含系统路径: ```ini Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" ``` ✨ 若缺少 `/usr/bin` 路径,需添加该路径(路径间用冒号分隔) 3. **添加显式路径(临时方案)** 🚦 若无法修改`/etc/sudoers`: ```bash $ sudo /usr/bin/passwd root # 使用完整路径执行 ``` 4. **检查 root 环境变量** 🔗 当通过 `sudo su` 切换时(引用[3]),验证 rootPATH: ```bash $ sudo su - # 注意有横线加载环境变量 # echo $PATH | grep /usr/bin ``` 📝 若缺失路径,需编辑 root 配置文件: ```bash # nano ~/.bashrc export PATH=$PATH:/usr/bin # 在文件末尾添加 # source ~/.bashrc ``` ### 原理说明 - `sudo` 运行时默认**重置环境变量**,仅保留`/etc/sudoers`中`secure_path`指定的路径(引用[1][2]) - `passwd` 命令通常位于`/usr/bin`,若该路径不在`secure_path`中则报错 - `sudo root passwd` 语法实际等价于 `sudo -u root passwd`,无需额外添加`root`参数 > 📌 **关键提示**:修改`/etc/sudoers`时需使用`visudo`命令保证语法安全,避免系统锁死[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值