标签: sudoers

从命令行以非交互方式添加 sudoer

(在 Centos 上通过 Docker)

我知道我可以使用visudo. 有没有办法直接从命令行将用户添加到 sudoer 列表中,这样我就不必以交互方式进行操作?

我之所以这么问,是因为我正在尝试配置不具有交互性的 Docker centos 容器。

linux centos sudo sudoers docker

9
推荐指数
2
解决办法
2万
查看次数

在 Amazon EC2 实例上丢失了 sudo/su

我有一个 Amazon EC2 实例。我可以正常登录,但是“su”和“sudo”现在都不能正常工作(以前它们可以正常工作):

  • “su”要求输入密码,但我使用 ssh 密钥登录,我认为 root 用户甚至没有密码。

  • “sudo <anything>”这样做:


sudo: /etc/sudoers is owned by uid 222, should be 0 
sudo: no valid sudoers sources found, quitting 
Run Code Online (Sandbox Code Playgroud)

我可能做了“chown ec2-user /etc/sudoers”(或者,更可能是“chown -R ec2-user /etc”,因为我厌倦了rsync失败),所以这是我的错。

我该如何恢复?我停止了实例并尝试了 AWS EC2 控制台上的“查看/更改用户数据”选项,但这没有帮助。

编辑:我意识到我可以杀死这个实例并创建一个新实例,但希望避免极端情况。

sudo amazon-web-services sudoers amazon-ec2

8
推荐指数
2
解决办法
5438
查看次数

sudo 作为 www-data 用户运行特定命令的权限,无需密码

我有一个网络服务器,也播放网络广播。作为 www-data 用户,我想运行一些命令,例如我在/etc/sudoers文件中做了这个:

www-data        ALL=(ALL) NOPASSWD: /usr/bin/amixer
Run Code Online (Sandbox Code Playgroud)

并形成 PHP 我可以在不使用密码的情况下通过以下方式操作音量:

exec('sudo -u user amixer set Master 3%-');
Run Code Online (Sandbox Code Playgroud)

和:

exec('sudo -u user amixer set Master 3%+');
Run Code Online (Sandbox Code Playgroud)

但是现在我希望能够通过运行命令来重新启动我自己的服务:

exec('sudo -u user service servicename restart');
Run Code Online (Sandbox Code Playgroud)

所以我试过:

www-data        ALL=(ALL) NOPASSWD: /usr/bin/amixer, NOPASSWD: /bin/service
Run Code Online (Sandbox Code Playgroud)

和这个:

www-data        ALL=(ALL) NOPASSWD: /usr/bin/amixer, /bin/service
Run Code Online (Sandbox Code Playgroud)

甚至这个:

www-data        ALL=(ALL) NOPASSWD: /usr/bin/amixer
www-data        ALL=(ALL) NOPASSWD: /bin/service
Run Code Online (Sandbox Code Playgroud)

但他们似乎都没有工作。请帮帮我。


对不起,伙计们 - 我的错误。我做了一些更改,尝试将表单 /sbin 链接到 /bin

现在我已将其更改为:

www-data        ALL=(ALL) NOPASSWD: /usr/bin/amixer, NOPASSWD: /usr/sbin/service
Run Code Online (Sandbox Code Playgroud)

它有效!谢谢!话题关闭。

permissions php sudoers exec

8
推荐指数
1
解决办法
6万
查看次数

“用户不在 sudoers 文件中”,但实际上是


我已经阅读了很多关于为特定用户启用 sudo 访问的帖子,但到目前为止这些都无济于事。
情况是:
我正在运行 Debian 测试。系统上只有两个帐户:“root”和用户帐户“benny”。用户“benny”应该能够使用 sudo 以 root 权限运行命令(当然我先安装了 sudo),这就是我使用 visudo 编辑“/etc/sudoers”文件的原因,如下所示:

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
benny   ALL=(ALL:ALL) ALL #<<<<<<<<<<<<<<< EDIT HERE!

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
ALL ALL= NOPASSWD: /usr/sbin/g15daemon
Run Code Online (Sandbox Code Playgroud)

这根本不起作用 - 发出“sudo”命令时,它一直说“benny 不在 sudoers 文件中”。将报告此事件。所以我将 benny …

linux debian sudo sudoers

7
推荐指数
1
解决办法
7744
查看次数

Sudoers NOPASSWD 用于单个可执行文件但允许其他可执行文件

操作系统: Arch Linux

Linux版本: 4.16.11

须藤版本: 1.8.23

我需要什么

  • 能够执行any executablesudo使用密码提示
  • 能够在/home/username/script.sh没有密码提示的情况下执行一个可执行文件。

当我这样配置时

username ALL=(ALL) NOPASSWD: /home/username/script.sh
Run Code Online (Sandbox Code Playgroud)

我对 有想要的效果script.sh,但我不能executablesudo.

例子

$ sudo ./script.sh # runs fine!
Run Code Online (Sandbox Code Playgroud)

尝试别的

$ sudo nano /etc/sudoers
[sudo] password for username: 
Sorry, user username is not allowed to execute '/usr/bin/nano 
/etc/sudoers' as root on hostname.
Run Code Online (Sandbox Code Playgroud)

看来这是替换的结果ALLNOPASSWD,看来我需要两者。如果sudoers文件已ALL供用户使用,我可以使用密码提示执行任何我想要的操作

username ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

我试图结合 ALL 和 NOPASSWD 但没有结果

username ALL=(ALL) …
Run Code Online (Sandbox Code Playgroud)

linux sudo gnu permissions sudoers

7
推荐指数
1
解决办法
7990
查看次数

用户应该不在 sudoers 文件中,但已经在

我想给usersudo 特权。我添加user到管理员组: usermod -a -G admin user

然后我使用 visudo 检查管理员用户是否已设置为接收 sudo 权限。我取消了该行的注释admin ALL=(ALL) ALL

它没有用。

sudoers 文件:

Defaults        env_reset  
root    ALL=(ALL:ALL) ALL  
admin   ALL=(ALL) ALL  
%sudo   ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

linux terminal ubuntu sudoers

5
推荐指数
1
解决办法
641
查看次数

禁止的 sudo 请求会报告给谁?

当我被禁止运行sudo 时,我收到以下消息:

barack.obama 不在 sudoers 文件中。此事件将被报告。

但是它向谁报告,如何报告?

sudo sudoers

5
推荐指数
1
解决办法
358
查看次数

无密码 sudo 对一个用户有效,但对另一个用户无效

我很难passwordless sudo在我的 Debian 服务器上为一个用户创建。我已将以下行添加到sudoers文件中:

deployer ALL = NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

令我惊讶的是,我可以轻松地创建一个新用户

adduser deploy
passwd -l deploy
su deploy
touch somefile
Run Code Online (Sandbox Code Playgroud)

添加deploy ALL = NOPASSWD: ALLsudoers,和

sudo cp somefile /etc/init.d/somefile
Run Code Online (Sandbox Code Playgroud)

不会提示我输入密码。

您能否解释一下我的现有用户(部署者)和新用户(部署者)之间的区别,以便passwordless sudo对一个用户有效,但对另一个无效?

linux debian sudo sudoers

5
推荐指数
1
解决办法
394
查看次数

为什么 sudoers 不是由 UID 定义的?

在 Linux 中,登录信息与 UID 相关联。但是,当我打开 sudoers 文件时,sudoers 是由用户名而不是 UID 定义的。

为什么使用用户名而不是 UID?
sudoers 文件在usermod -l运行时会自动更改吗?

片段:

    # User privilege specification
    root    ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

linux user-accounts sudoers

5
推荐指数
0
解决办法
2216
查看次数

有人可以解释一下 sudoers 文件中的 `&lt;user&gt; ALL=(ALL) NOPASSWD:ALL` 的作用吗?

我知道上面的行允许<user>运行 sudo 命令而无需输入密码。但语法的实际含义是什么?如果您可以链接到一篇文章那就太好了。谢谢

linux sudo sudoers

5
推荐指数
2
解决办法
3万
查看次数