问题标签 [visudo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
236 浏览

php - 使用 cron 从 php 运行 sh 文件

我有一个带有文件删除命令的 sh 文件。

我像这样从 php 运行它:

如果我从浏览器打开 PHP 文件,那可以正常工作,但不能从计划的 cron 选项卡中工作。

PHP用户:www-data

如果我whoiami从 cron 运行,返回相同:www-data

我将此添加到我的 visudo 中:

此 sh 文件的 Shell exec 返回(来自 cron):

sudo:对不起,运行 sudo 需要密码

为什么在 cron 中以不同的方式工作?

我应该怎么做才能让它工作?

0 投票
1 回答
628 浏览

linux - 如何授予用户 sudo 权限以运行具有进程 ID 的脚本

我想授予 sudo 权限,该权限在执行脚本时不询问密码。我面临的问题是我必须在运行脚本时提供进程 ID 作为参数。我已经尝试过visudo以下条目,但它失败了并且没有权限执行该命令:

我也试过这个:

jstack是要执行的脚本,并且是在服务重启时随机更改21580的进程 ID 。java

但它不起作用。谁能帮我这个?

0 投票
1 回答
384 浏览

ubuntu - 允许来宾用户以提升的权限运行脚本

使用 ubuntu 16.04LTS

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

有权限的-r-xr-xr-x

并允许他们通过在 sudoers 文件中添加一行来做到这一点:

这仍然给出了权限被拒绝的错误。

我不想给我的来宾用户 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 单独的权力:

0 投票
1 回答
598 浏览

python - 如何以系统用户身份运行 bash 命令而不赋予该用户以任何用户身份运行命令的权利

我编写了一个包含以下行的 python 脚本:

response = subprocess.check_output(['/usr/bin/sudo /bin/su - backup -c "/usr/bin/ssh -q -o StrictHostKeyChecking=no %s bash -s" <<\'EOF\'\nPATH=/usr/local/bin:$PATH\nmvn --version|grep -i Apache|awk \'{print $3}\'|tr -d \'\n\'\nEOF' % i], shell=True)

这是一个 for 循环,它遍历主机名列表,每个我想检查它的命令结果。当我自己运行它时,它工作得很好,但是,这个脚本将由系统用户(shinken - nagios fork)运行,此时我遇到了一个问题。

但是,我想限制用户只允许它作为备份用户运行:

但是当我运行脚本时,我得到:

我已经阅读了这个并尝试了一些方法来解决它。我尝试将 -t 添加到我的 ssh 命令中,但这没有帮助。我相信我应该能够使用类似于以下内容的命令运行该命令:

但后来我得到了这个回应:

如果我手动运行命令,我会得到:

这很奇怪,因为那是它生活的地方……我不知道我正在尝试的是否可能。感谢您的任何建议!

0 投票
1 回答
241 浏览

linux - 如何指定用户可以使用 visudo 安装的 rpm 包?

我需要指定特定用户可以在 CentOS 7 服务器上安装的 rpm 的前缀。例如,假设我有:

  • my_package_foo.rpm
  • my_package_boo.rpm

我想我可以添加这个:

但它不起作用。

我还尝试了变体,例如:

最后我尝试如下,但这允许我安装任何我不想要的 rpm。

0 投票
1 回答
47 浏览

linux - visudo 命令限制中的第一个星 (*) 是什么意思

visudo 中的限制示例:

我明白了大部分,它只是让我发疯的第一颗星。我最好的猜测是,它要么用于命令选项,要么用于源路径。

谢谢!

0 投票
1 回答
47 浏览

linux - 作为詹金斯奴隶的 Linux/mac 权限

简而言之,我在从属机器上的 jenkins 可以从执行 shell 段执行一个程序,例如 ionic,尽管当我通过执行 shell 脚本 .sh 文件启动它时,它说该命令不存在。这与权限有关吗?如何设置?我是否需要使用 visudo 排除该应用程序?

0 投票
1 回答
968 浏览

php - 通过 php 执行 sudo shell 脚本

我正在尝试通过 php 脚本执行 pkill 命令。

killengine.sh 脚本从终端运行良好,包括 ./killengine.sh 和 php restart.php。

这是killengine.sh

这是restart.php

这两个文件都有 755 权限。restart.php 的所有者是apache,root 是killengine.sh 的所有者。我还尝试让两个所有者都成为 root/apache。

在 visudo 我做了这个改变:

但我得到:“sudo:没有 tty 存在,也没有指定 askpass 程序”

然后我尝试了

然后我得到:“sudo:对不起,你必须有一个 tty 才能运行 sudo”

此外,这条线一直出现在 EOF

但没有成功。

操作系统是 Centos 6

有任何想法吗?

0 投票
1 回答
149 浏览

ubuntu-16.04 - visudo nopasswd 不适用于我的命令

我已经尝试了其他可用问题的大部分解决方案,所以请不要参考它们。他们都没有涵盖我的情况。

我在 Ubuntu-16.04 上,我正在尝试在没有密码提示的情况下运行以下命令:

我尝试了不同的变体,我能够找到 - 转义特殊字符、使用通配符、使用命令别名等等:

使用命令别名:

这没有任何作用。我收到语法错误或密码提示。请帮帮我。

显然,我不想使用

0 投票
2 回答
785 浏览

linux - 在根行之后的 visudo 中添加行

我正在测试一些 Ansible 部署,需要将 ansible 用户添加到 sudoers。我每次都复制这个脚本而不是编辑:

这是添加ansible ALL=(ALL) NOPASSWD: ALL到文件的末尾。

如何在根行之后添加它以通过脚本使其像这样?