我正在尝试以普通用户身份以 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