0

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

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

/usr/local/bin/nanobox run python manage.py runserver 0.0.0.0:8080

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

username ALL=(ALL) NOPASSWD: /usr/local/bin/nanobox run python manage.py runserver 0.0.0.0\:8080
username ALL=(username) NOPASSWD: /usr/local/bin/nanobox run python manage.py runserver 0.0.0.0\:8080
username ALL=NOPASSWD: /usr/local/bin/nanobox run python manage.py runserver 0.0.0.0\:8080
username ALL=(ALL) NOPASSWD: /usr/local/bin/nanobox run python manage.py runserver 0.0.0.0:8080
username ALL=(ALL) NOPASSWD: /usr/local/bin/nanobox run *

使用命令别名:

Cmnd_Alias NANOBOX_RUN=/usr/local/bin/nanobox run python manage.py runserver 0.0.0.0\:8080
username ALL=(ALL) NOPASSWD: NANOBOX_RUN
username ALL=NOPASSWD: NANOBOX_RUN
username ALL=(username) NOPASSWD: NANOBOX_RUN

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

显然,我不想使用

username ALL=(ALL) NOPASSWD: ALL
4

1 回答 1

0

(即使这是很久以后......,也许它可以帮助某人)

在昨天和今天花了很多时间寻找为什么我的 sudoers 不允许我为我运行没有密码的命令之后,解决方案非常简单:

检查你的别名!

我将我的 shell 配置为使用如下别名

alias sudo='sudo env "PATH=/usr/local/sbin:/usr/local/bin" '

在没有配置的普通 bash 中运行命令时,它运行良好。

于 2018-11-24T23:46:07.840 回答