允许guest用户使用提升的权限运行脚本

时间:2017-01-24 17:53:59

标签: ubuntu nginx permissions visudo

使用ubuntu 16.04LTS

我试图允许没有sudo权限的来宾用户在需要时通过执行一个简单的脚本来重新加载nginx:

#!/bin/sh
nginx -s reload

,其权限为-r-xr-xr-x

允许他们在sudoers文件中添加一行:

root  ALL=(ALL:ALL) ALL
guest ALL=NOPASSWD: /path/to/script.sh

这仍然会给予权限拒绝错误。

nginx: [alert] could not open error log file: open()   "/usr/local/nginx/logs/error.log" failed (13: Permission denied)

我不想给我的访客用户提供sudo权限,但为了重新加载nginx,我通常需要使用sudo nginx -s reload

编辑:解决了我的问题 - 我试图通过脚本运行客户用户所需的命令来解决问题。也没有真正得到/ etc / sudoers如何工作。这段视频有很多帮助:https://www.youtube.com/watch?v=YSSIm0g00m4

作为root,我创建了一个sudoers.d文件visudo -f /etc/sudoers.d/guests,以正确地让我的客人对nginx和nginx单独使用sudo权限:

Cmnd_Alias NGINX = /usr/local/nginx/sbin/nginx
Cmnd_Alias GUESTS_CMND = NGINX
%guests ALL=GUESTS_CMND

1 个答案:

答案 0 :(得分:0)

在我的编辑中 - 我试图通过脚本运行访客用户所需的命令来过度思考问题。也没有真正得到/ etc / sudoers如何工作。这段视频有很多帮助:https://www.youtube.com/watch?v=YSSIm0g00m4

作为root,我创建了一个sudoers.d文件visudo -f /etc/sudoers.d/guests,以正确地让我的客人对nginx和nginx单独使用sudo权限:

Cmnd_Alias NGINX = /usr/local/nginx/sbin/nginx
Cmnd_Alias GUESTS_CMND = NGINX
%guests ALL=GUESTS_CMND