使用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
答案 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