标签: sudo

在使用 sudo 调用的脚本中调用 sudo 会提示输入密码,即使使用 NOPASSWD

我正在使用的 PHP 程序 ( LConf ) 使用sudo.

我已允许用户apache运行脚本并使用sudo -u apache /usr/local/LConf/lconf_deploy.sh.

我在lconf_deploy.sh拨打时被提示输入密码/usr/bin/sudo -u icinga /usr/local/LConf/LConfExport.pl -o /etc/icinga/lconf -v,但在此线路之前或之后拨打线路没有问题。

在阅读了很多(在 stackexchange 和互联网上的其他地方)关于在这种情况下该怎么做之后,我已经禁用requiretty并使用NOPASSWD了所有我能想到的会影响这种情况的东西。

# cat /etc/sudoers | grep -v "#"
Defaults    always_set_home
Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC …
Run Code Online (Sandbox Code Playgroud)

php bash httpd sudo perl

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

未找到 SUDO YUM

我在亚马逊的 linux 上运行亚马逊 ec2 实例。

每当我运行任何东西时,sudo yum它都会给我这个:

sudo: yum: command not found

ec2-user$ rpm -qf /usr/bin/yum
yum-3.2.29-30.24.amzn1.noarch

ec2-user$ which yum
/usr/bin/yum
Run Code Online (Sandbox Code Playgroud)

which yum 而在 root 中给出:

root$ which yum
/usr/bin/which: no yum in (/sbin:/bin:/usr/sbin:/usr/bn:/usr/local/bin:/opt/aws/bin)
Run Code Online (Sandbox Code Playgroud)

这是两天前的新 ec2 实例。当我第一次登录时,我跑了sudo yum update,但一切都不太顺利。发生了什么变化?

root sudo yum amazon-ec2

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

sudoers 限制仅在使用“sudo”时有效,如何限制经常使用?

我的sudoers.d/nginx文件中有以下内容:

deployer ALL=NOPASSWD: /etc/init.d/nginx reload
Run Code Online (Sandbox Code Playgroud)

如果我以 sudo 身份运行命令,这会起作用:

$ sudo /etc/init.d/nginx start
[sudo] password for deployer: 
Sorry, user deployer is not allowed to execute '/etc/init.d/nginx start' as root on graduation.
Run Code Online (Sandbox Code Playgroud)

但是,当我以非 sudo运行命令时,似乎 sudoers 被通过了。该命令仍然不起作用,但这是因为其他所有权错误,而不是 sudoers 中的限制:

$ /etc/init.d/nginx start
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2012/12/30 20:59:49 [warn] 30054#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:12
2012/12/30 20:59:49 …
Run Code Online (Sandbox Code Playgroud)

linux sudo

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

从 PHP 以 sudo 的形式安全地执行系统命令

是否可以?

我用 PHP 编写了一个命令行工具,用于为我们公司创建新环境。它创建系统用户、目录、数据库、VHosts 并重新启动 apache 等。这些命令需要sudo特权。我认为为它提供一个 Web 界面可能是个好主意,以便其他非开发人员更容易使用。Web 应用程序将落后于身份验证。

从命令行运行时sudo tool.php,我只是运行,显然我无法从网络应用程序执行此操作。

我怎么能安全地做到这一点?授予 apache 用户 sudo 访问权限似乎很愚蠢,因为这意味着主机上托管的所有站点(例如我们所有的环境)都将具有 sudo 访问权限。是否可以让这个工具在不同的用户下运行?这个用户可以只对我需要的命令有 sudo 权限吗?

plesk 和 cPanel 之类的东西是如何做到这一点的?

有什么想法吗?

security php sudo apache-2.2

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

使用 sudo'ed 帐户挂载 sshfs

我们有一个 linux 系统 ferguson。

关于弗格森:
  • 我有用户名 a123。
  • 作为用户 ID a123,我可以sudo su进入用户 ID admin。
  • userid admin 没有直接登录。
  • 我们必须使用我们的个人用户 IDsudo su进入用户 ID 管理员。
我的 Windows 笔记本电脑上有一个虚拟盒 linux vm。
  • 从我的笔记本电脑的 linux vm,我可以使用用户 ID a123 来 sshfs 挂载 a123@ferguson。
  • 我想以 admin@ferguson 的身份挂载 sshfs。
  • 但是 admin@ferguson 只能通过 thro 访问sudo su

我的笔记本电脑的 linux vm 如何使用 userid a123 以管理员身份执行 sshfs mount ferguson,使用 sudo 访问?

linux sudo sshfs

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

无需登录root即可保存iptables规则

我正在尝试将 iptables 规则文件保存到 /etc/sysconfig/iptables。我想在不登录 root 的情况下执行此操作。我尝试使用

须藤 iptables-save > /etc/sysconfig/iptables

但它抛出权限被拒绝错误。

如何在不登录 root 的情况下保存文件?我在我的应用程序中使用它,所以我不想通过应用程序登录到 root。

谢谢

iptables root sudo rules fedora-22

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

递归 Sudo 权限

我正在为我们的一线支持团队设置专门的 sudo。我想授权他们删除/var/log/. 但是,下面的命令仅适用于直接位于/var/log/其子目录中的文件。如果他们试图从中删除,/var/log/directory/file_name则不允许他们删除该文件。我尝试了一些阅读,但无法弄清楚如何更改此命令以使权限递归。任何意见,将不胜感激。

%front_line ALL=(ALL) NOPASSWD: /bin/rm /var/log/*
Run Code Online (Sandbox Code Playgroud)

permissions sudo

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

SaltStack:/etc/sudo:/bin/systemctl vs /usr/bin/systemctl

几周以来,我们使用 SaltStack 进行配置管理。

如何处理分布的具体位置systemctl

  • 在 Ubuntu 上: /bin/systemctl
  • 在 SuSE 上: /usr/bin/systemctl

目前我在 sudoers 文件中添加了两行:

etc_sudoers:
  file.blockreplace:
    - name: /etc/sudoers
    - marker_start: "# START managed etc_sudoers -DO-NOT-EDIT-"
    - marker_end: "# END managed zone etc_sudoers --"
    - content: |
        some_user ALL = NOPASSWD: /bin/systemctl restart apache2
        some_user ALL = NOPASSWD: /usr/bin/systemctl restart apache2
{% endfor %}

    - append_if_not_found: True
    - backup: '.bak'
    - show_changes: True
Run Code Online (Sandbox Code Playgroud)

....有没有更简单的解决方案?

sudo saltstack

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

以“www-data”用户身份重新启动或重新加载Apache

我在我的 Debian/Apache2.4 服务器上有一个用 Python 编写的 webhook 脚本,以便它在推送 GitHub 时运行部署 .sh 脚本。因此,该脚本由标准 Apache 用户“www-data”执行。我的脚本需要重新启动或加载了Apache,但输出表示用户不必这样做的许可:Reloading apache2 configuration (via systemctl): apache2.serviceFailed to reload apache2.service: Access denied。手动执行时的行为与 www-data ( sudo -u www-data /etc/init.d/apache2 reload) 相同。

因此,我尝试通过将以下行添加到我的 visudo 中来使“www-data”具有重新加载或重新启动 Apache 的权限:(www-data ALL = NOPASSWD: /etc/init.d/apache2根据此文档)。

但它不会改变任何东西。为什么?是不是因为Apache无法重新加载自己?如何更改权限以执行此操作?或者我是否需要由另一个用户执行脚本,以及如何执行?

linux permissions bash sudo apache-2.4

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

FreeIPA sudoers 规则 - 如何为所有命令添加 NOPASSWD(不提示输入密码)

将 FreeIPA 用于 sudoers 规则,我正在尝试创建与以下标准 sudoers 行相同的内容:

user ALL=(ALL) NOPASSWD:ALL
group ALL=(ALL) NOPASSWD:ALL
Run Code Online (Sandbox Code Playgroud)

允许特定用户或组在不提示输入密码的情况下执行任何/所有命令。

这不是下面提到的重复,因为我的目标是绕过密码提示(使用 NOPASSWD)。我已经知道如何设置所有命令。

添加 '!authenticate' 选项似乎也不起作用(见下文):

 tester@server:~$ ipa sudorule-find ANY
-------------------
1 Sudo Rule matched
-------------------
  Rule name: ANY
  Enabled: TRUE
  Host category: all
  Command category: all
  RunAs User category: all
  RunAs Group category: all
  Users: tester
  External User: user
  Sudo Option: !authenticate
----------------------------
Number of entries returned 1
----------------------------
tester@server:~$ 
tester@nvamgtwiki01:~$ sudo cat /etc/sudoers
[sudo] password for tester: 
Run Code Online (Sandbox Code Playgroud)

sudo freeipa

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