【问题标题】:Allowing a guest user to run a script with elevated privileges允许来宾用户以提升的权限运行脚本
【发布时间】:2017-06-09 16:43:41
【问题描述】:

使用 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,以正确地赋予我的客人 sudo 对 nginx 和单独 nginx 的权力:

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

【问题讨论】:

  • 更多的是 Ask UbuntuServer Fault 问题,而不是编程问题 - 投票通过。
  • 你试过setuid到root吗?
  • 客人如何运行这个脚本?

标签: ubuntu nginx permissions visudo


【解决方案1】:

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

我以 root 身份创建了一个 sudoers.d 文件 visudo -f /etc/sudoers.d/guests,以正确授予我的客人 sudo 对 nginx 和单独 nginx 的权力:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 2021-01-09
    • 2011-05-09
    • 2018-04-21
    • 1970-01-01
    相关资源
    最近更新 更多