2017-06-21 153 views
0

我有以下脚本,它的伟大工程的当口,用我自己的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修改/创建的所有文件归于www-data。我可以做些什么来允许非sudo用户使用这个脚本或其他等效的东西?

回答

1

sudo可以调整以允许管理员设置什么可以运行。它不是一成不变的“当我将用户添加到sodoers文件中时,用户自动成为管理员”是被迫的。 sodoers允许细粒度的规则,可以帮助您量身定制它,以满足您的需求,一个用户将被允许运行一个脚本(并且没有别的)

https://unix.stackexchange.com/questions/18830/how-to-run-a-specific-program-as-root-without-a-password-prompt

+0

所以我一直在试图使用sudoers文件,但我相信,需要启用的事情是行'须藤-u www数据混帐pull'(做一个混帐拉的www -data),我的网络管理员说你不把sudo命令放在sudoers文件中 –

+0

我想说缺少许多sudo可以做的功能(它不仅仅是为了让用户变满在一个.system上启动根,但允许它们运行他们需要的特定事物,而不会授予他们其他任何东西。)另外,我不会让用户_carte blanche_在任何他们想要的地方运行git。我会通过创建一个简单的脚本来缩小它的范围,该脚本会去所需的位置并运行'''git any'''',而不是别的。没有参数读取,没有任何。这样脚本就会被绑定。这就是我会在sudoers上创建的脚本。 – eftshift0

相关问题