从非 root 用户执行 root 需要的脚本
Executing root-required script from non-root user
我正在使用 Apache CGI mod 以允许通过 HTTP(S) 请求执行 python 脚本。问题是我要执行的脚本 backup.py 在某一点执行子进程调用,其中 mysqldump 命令是被输送到 sudo -i。问题是 CGI "user", www-data, 没有 root 访问权限,我当然不想给它一般,只是为了这个具体任务。如何允许 www-data 仅在 sudo -i 下执行 mysqldump 命令?
提升特定脚本权限的一种方法是使用 sudoers 文件。
创建一个包含您不想使用 root 权限执行的脚本的文件,比如 /path/to/script.sh
。
然后,使用 sudo visudo
编辑 sudoers
文件,并添加以下行:
www-data ALL = (root) NOPASSWD: /path/to/script.sh
根据需要设置用户名和路径。
我正在使用 Apache CGI mod 以允许通过 HTTP(S) 请求执行 python 脚本。问题是我要执行的脚本 backup.py 在某一点执行子进程调用,其中 mysqldump 命令是被输送到 sudo -i。问题是 CGI "user", www-data, 没有 root 访问权限,我当然不想给它一般,只是为了这个具体任务。如何允许 www-data 仅在 sudo -i 下执行 mysqldump 命令?
提升特定脚本权限的一种方法是使用 sudoers 文件。
创建一个包含您不想使用 root 权限执行的脚本的文件,比如 /path/to/script.sh
。
然后,使用 sudo visudo
编辑 sudoers
文件,并添加以下行:
www-data ALL = (root) NOPASSWD: /path/to/script.sh
根据需要设置用户名和路径。