允许非特权用户 运行 作为不同用户执行命令
Allow Unprivileged User to run a command as a different user
我有以下脚本,当我使用我自己的 sudo 权限,运行 它时,它工作得很好:
department_wpsites=("/var/www/asiane/wp-ane" "/var/www/english/wp-english")
for f in ${department_wpsites[*]}
do
theme_path="$f/wp-content/themes/dept-theme"
cd $theme_path
echo ">> Performing 'git pull' at $theme_path"
sudo -u www-data git pull
done
现在我希望我的一个没有 sudo 权限的下属能够 运行 它。请注意,需要 git pull
的所有文件 modified/created 都归 www-data 所有,而不管脚本是谁 运行。我该怎么做才能让非 sudo 用户使用此脚本或类似的脚本?
sudo 可以调整为允许管理员设置 what can be 运行 by who。这不像是强制性的一刀切 "when I add a user into sodoers file the user is automatically an admin"。 sodoers 允许细粒度的规则,可以帮助您定制它以满足您的需求,其中允许单个用户 运行 单个脚本 (没有其他)。
我有以下脚本,当我使用我自己的 sudo 权限,运行 它时,它工作得很好:
department_wpsites=("/var/www/asiane/wp-ane" "/var/www/english/wp-english")
for f in ${department_wpsites[*]}
do
theme_path="$f/wp-content/themes/dept-theme"
cd $theme_path
echo ">> Performing 'git pull' at $theme_path"
sudo -u www-data git pull
done
现在我希望我的一个没有 sudo 权限的下属能够 运行 它。请注意,需要 git pull
的所有文件 modified/created 都归 www-data 所有,而不管脚本是谁 运行。我该怎么做才能让非 sudo 用户使用此脚本或类似的脚本?
sudo 可以调整为允许管理员设置 what can be 运行 by who。这不像是强制性的一刀切 "when I add a user into sodoers file the user is automatically an admin"。 sodoers 允许细粒度的规则,可以帮助您定制它以满足您的需求,其中允许单个用户 运行 单个脚本 (没有其他)。