从非root用户执行root-required脚本

时间:2016-07-29 13:48:53

标签: python bash cgi sudo sudoers

我使用Apache CGI mod允许通过HTTP(S)请求执行python脚本。问题是我想要执行的脚本 backup.py ,一次执行一个子进程调用,其中 mysqldump 命令被传送到 sudo - I 即可。问题是CGI"用户", www-data ,没有root访问权限,我当然不想给它一般,只是为了这个特定的任务。如何才允许 www-data 仅在 sudo -i 下执行 mysqldump 命令?

1 个答案:

答案 0 :(得分:2)

提升特定脚本权限的一种方法是使用sudoers文件。

创建一个文件,其中包含您要使用root权限执行的脚本,请在/path/to/script.sh说明。

然后,使用sudoers修改sudo visudo文件,并添加以下行:

www-data ALL = (root) NOPASSWD: /path/to/script.sh

在适当的位置设置用户名和路径。