无法通过 ssh 在远程主机上执行初始化脚本

无法通过 ssh 在远程主机上执行初始化脚本

我在Cent 5.10主机上。

我向该主机发出远程命令来启动服务,每个服务都读取为启动成功:

kkahn@host: /home/kkahn$ ssh -q -t host.example.com "sudo /etc/init.d/redacted-service start "
Starting service
Service started
Connection to host.example.com closed.

甚至在带有 PID 条目的情况下创建了 PID 文件/var/run,但没有启动任何进程!如果我运行sleep 10最后带有 a 的命令,它将在远程主机上运行该进程 10 秒,并在命令结束时停止。

答案1

在检查一台不工作的主机和一台工作的主机(Cent5 主机与 Cent6 主机相比)上sudo -i的输出后,我注意到以下内容:set

[root@cent5-node ~]# set | grep -i sudo
SUDO_COMMAND=/bin/bash
SUDO_GID=100100017
SUDO_UID=100100017
SUDO_USER=kkahn

[root@cent6-node ~]# set | grep -i sudo
SUDO_COMMAND=/bin/bash
SUDO_GID=1001000173
SUDO_UID=1001000173
SUDO_USER=kkahn
[root@testcentsix(testcentsix) ~]# 

我的SUDO_GIDSUDO_UID是正确的cent6-node- 和缩短了cent5-node!在 Cent5 上,ID 已被3删除。

事实证明,这是在后续版本中修补的内容sudo

https://gratisoft.us/sudo/changes.html

    * plugins/sudoers/env.c, plugins/sudoers/ldap.c:
    Use MAX_UID_T_LEN + 1 for uid/gid buffers, not MAX_UID_T_LEN to
    prevent potential truncation. Bug #562.
    [29d9fc4e0c4e]

sudo这些 Cent5 主机上运行的版本是1.7.2p1,而我们的 Cent6 主机上运行的版本是1.8.6p3.翻阅了源码1.7.2p1,果然发现:

...
char idbuf[MAX_UID_T_LEN];
...

sudo在Cent5节点上安装更高版本后,该问题已得到解决。

相关内容