以普通用户身份执行 bash 脚本

以普通用户身份执行 bash 脚本

我正在尝试以普通用户身份以 root 身份执行 bash 脚本。背后的原因是我需要 www-data 用户能够终止特定进程。为了避免 apache 能够对进程造成混乱,我创建了以下 bash 脚本

#!/bin/bash

PID=$(pgrep mono)
kill -9 $PID

为了能够执行此操作,我完成了一个apt-get install sudo,然后visudo在文件底部添加了以下行

myuser ALL= NOPASSWD: /path/to/script/foo.sh

但是当我登录 myuser 并尝试运行时,/path/to/script/foo.sh我收到以下错误-bash: /path/to/script/foo.sh: Permission denied

该文件当前的权限如下

-rwxr-xr-x 1 root root   48 Nov  7 12:11 foo.sh

谢谢你!

答案1

要使用 sudo,您需要在命令前加上“sudo”。即:

$ sudo /path/to/script/foo.sh

答案2

以 root 身份登录并执行以下操作:

cd /path/to/script

chmod u+x foo.sh

./foo.sh

测试程序是否运行。现在切换到 myuser,

su myuser

并尝试再次运行该程序:

/path/to/script/foo.sh

相关内容