由于 sudo 问题导致远程执行命令失败

由于 sudo 问题导致远程执行命令失败

我正在从我的服务器运行一个命令,该命令将以 root 身份远程 ssh 到客户端计算机并以 olcne 用户身份使用 sudo 并运行一些命令进行验证。我已将 olcne 用户添加到 sudoer 列表中。我能够通过 sudo 在本地执行这些命令而不会出现任何问题,但当远程执行时,我收到以下错误

Apr 18 06:28:02 client sudo:   olcne : user NOT authorized on host ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/etc/olcne/scripts/olcne-firewall-check 2379 tcp
Apr 18 06:28:03 client sudo:   olcne : user NOT authorized on host ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/etc/olcne/scripts/olcne-image-exists container-registry.oracle.com/olcne/kube-scheduler:v1.14.8


sudoer file

root ALL=(ALL) NOPASSWD: ALL
olcne ALL=(ALL) NOPASSWD: ALL

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d

cat /etc/sudoers.d/olcne
Cmnd_Alias  OLCNE_PRIVILEGE = \
            /etc/olcne/scripts/
olcne  ALL=(root:ANY)  NOPASSWD: OLCNE_PRIVILEGE

从客户端运行命令成功。

[root@client var]# sudo su olcne -c "sudo /etc/olcne/scripts/olcne-firewall-check 8472 udp"
yes

答案1

您可以从您的服务器尝试以下命令。

如果脚本在源服务器上:

ssh olcne@client 'bash -s' < /etc/olcne/scripts/olcne-firewall-check

如果脚本在目标服务器上,请从源服务器执行以下操作:

ssh user@destinationserver su --session-command="/path/to/command1 arg1 arg2"

希望这可以帮助。

相关内容