通过 ssh 进行 sudo 的建议

通过 ssh 进行 sudo 的建议

我需要两个建议来使我的脚本从本地服务器运行以及 ssh 执行

1. 如何更新sudoers

在服务器中我有一条路径

/var/log/数据/状态/

Parent 和 Child_dir 的所有文件均归 tomcat 用户和组所有。

-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221119.status
-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221116.status
-rw-rw-r-- 1 tomcat tomcat 0 Feb 17 02:23 20221112.status

我希望名为 new_user 的用户能够重命名 /var/log/data/status/ 下的文件,作为我的脚本的一部分。我尝试像下面这样编辑我的 sudoers 文件,但它无需密码即可运行,因为 tomcat 是应用程序用户没有密码,不确定如何对其进行 sudoers 更改。

 new_user  ALL=NOPASSWD: /bin/bash /path/my_script [a-z_]* 20[0-9]*

我想要实现的是,无需任何密码即可运行

sudo -u new_user /bin/bash /path/my_script

2.通过ssh运行脚本

我的另一个要求是通过 ssh 从其他服务器运行相同的脚本,如果可能,请帮助解决语法

  • 在服务器 A 上(以我的用户 iamsage 身份登录)-

我需要运行这样的东西

ssh new_user@remote_host "sudo -u new_user /path/my_script arg1 arg2"

答案1

你的sudoers线路不太对。试试这个

your_user ALL=(new_user) NOPASSWD: /path/my_script

然后确保您的脚本可执行并且具有#!/bin/bash第一行。

远程调用建议的一个大问题是您尝试以新用户身份登录,因此您不需要使用sudo.尝试其中任何一个,但不要混合使用:

ssh remote_host sudo -u new_user /path/my_script arg1 arg2
ssh new_user@remote_host /path/my_script arg1 arg2

在这两种情况下,完全可以引用用于远程执行的整个命令,但我在这里没有这样做

相关内容