标签: sudo

使用 sudo 将程序输出传输到受保护的文件中

我想做以下事情:

$ echo "secrets" > protected_file
Run Code Online (Sandbox Code Playgroud)

但问题是,我没有“protected_file”的文件权限,所以我尝试以下操作:

$ sudo echo "secrets" > protected_file
Run Code Online (Sandbox Code Playgroud)

但这也不起作用,因为只有命令的“echo”部分在 sudo 下执行。

这样做的正确方法是什么?

——杰弗里·李

sudo pipe

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

Apache sudoers 访问

我正在从 php 进行系统调用,它是

`sudo /usr/bin/perl -pi -e 's/foo/bar/g' /tmp/newxml.xml`;
Run Code Online (Sandbox Code Playgroud)

在 php cli 中运行良好。但是不能通过浏览器在 php 中工作,因为 apache 没有所需的执行权限。如何使 apache 成为一个 sudoer 以允许仅运行 /usr/bin/perl ?

我知道必须编辑 /etc/sudoers 才能做到这一点,但我不确定如何完成。任何指针?

我正在运行 RHEL 5.5

php redhat sudo apache-2.2

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

运行 sudo -H -u 的 ec2-user 密码

我必须运行这个命令来初始化gitosis

sudo -H -u git gitosis-init < /home/ec2-user/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

但这要求我输入 ec2-user 的密码:

$ sudo -H -u git gitosis-init < id_rsa.pub
[sudo] password for ec2-user: 
Run Code Online (Sandbox Code Playgroud)

我没有密码,因为我使用默认的 .pem 密钥文件登录。

我知道我可以以 git 用户身份登录并执行此操作,但是还有其他方法吗?

更新:

使用 Linux AMI 12.09(微实例),在区域 us-east-1(弗吉尼亚北部)

password sudo git amazon-ec2

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

如何根据部署到的环境在 puppet 中生成自定义的 sudoers 文件?

系统管理员存在于所有环境的 sudoers 文件中,但其他 sudoers 没有。不同的环境都有略微不同的sudoer。大多数时候,90% 的用户是相同的,10% 的用户不同,所以我们不能只有一个 sudoers 文件来处理所有事情。

现在,我们正在使用具有 10 个不同文件的 puppet,名称分别为 sudoers.production1、sudoers.production2、sudoers.production3、sudoers.testing1、sudoers.staging1 等等。

Puppet 然后根据服务器的 $domain(例如:dbserver.staging1.acme.com)或 $hardwaremodel 选择要部署的文件。它工作正常,但维护这么多文件是一场噩梦。

我想根据服务器的域自动生成 sudoers 文件,并且只有一个大文件具有所有用户和所有环境的所有 sudoers 权限。看起来像的东西:

User_Alias ADMINS = abe, bob, carol, dave

case $domain {
 "staging1.acme.com" {
    #add dev1,dev2,tester1,tester2 to sudoers file 
  }
 "testing2.acme.com" {
    #add tester1, tester3, tester4 to sudoers file
  }    
Run Code Online (Sandbox Code Playgroud)

解决这个问题的最佳方法是什么?欢迎提供替代方案的建议。我很感激任何提示。

更新 1:

出于安全原因,我们不希望将位于 puppet 客户端上的文件夹中的一堆文件连接起来,以防有人将文件(无论是否恶意)放入其中并破坏组合文件或在其中插入某些内容。

最重要的是,为了可用性,我们希望将 puppet 服务器上与 sudoers 相关的文件(片段或完整)的数量保持为 3(生产/阶段/测试)或最好是 1 个文件。该文件将(以某种方式)在 puppet 服务器上生成 sudoers 文件,并将一个自定义文件发送到每个 puppet 客户端。

这样做的目的是只在单个文件中搜索用户名,并比在 11 个文件中更快地删除它。将用户添加到一堆环境中时,不会那么快,但只需要打开和查看一个文件,大大减少了遗漏的机会。

我们的 Sudo 版本是 1.6.9p8,所以我们不能使用 …

linux sudo configuration-management puppet

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

无法在 Ubuntu 12 上使用没有密码的 sudo

也许我的问题很愚蠢,但我真的被困住了......

我的操作系统是 Ubuntu 12.04
我的 sudoers:

#
# 必须以 root 身份使用“visudo”命令编辑此文件。
#
# 请考虑在 /etc/sudoers.d/ 中添加本地内容而不是
# 直接修改这个文件。
#
# 有关如何编写 sudoers 文件的详细信息,请参阅手册页。
#
默认值 env_reset
默认值 mail_badpass
默认secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# 主机别名规范

# 用户别名规范

# Cmnd 别名规范

# 用户权限说明
根 ALL=(ALL:ALL) ALL
dart ALL=(ALL) NOPASSWD: ALL

# admin组的成员可以获得root权限
%admin ALL=(ALL) ALL

# 允许组 sudo 的成员执行任何命令
%sudo ALL=(ALL:ALL) ALL

# 有关“#include”指令的更多信息,请参见 sudoers(5):

#includedir /etc/sudoers.d

一些控制台命令输出:

$ id 飞镖
uid=1000(dart) gid=1000(dart) 组=1000(dart),24(cdrom),30(dip),46(plugdev),107(lpadmin),124(sambashare)
$ sudo ls /root/
[sudo] dart 的密码: 

为什么系统询问sudo的密码?我怎样才能避免它?

password sudo ubuntu-12.04

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

一个用户有多种 sudo 类型

我遇到一种情况,我希望主管理员用户(所有人都使用 sudo)将无密码 sudo 作为一个命令的另一用户。据我所知, /etc/sudoers 中应该给出以下内容:

ramo   ALL=(otherUser) NOPASSWD: /usr/bin/command
ramo   ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

但这两行似乎冲突,或者第二行覆盖了第一行。关于如何实现这一目标有什么想法吗?

干杯

拉莫

编辑:事实证明我在指定用户时稍微误解了 sudo 的工作原理。我的印象是,如果您有 ALL=(otherUser) 那么您不需要“sudo -u otherUser”,而只需 sudo 即可。事实并非如此。

linux sudo

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

sudo 不提示输入密码并报告 3 次错误的密码尝试

用户smithj/etc/sudoers文件中列出:

root ALL=(ALL) ALL
smithj ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

smithj通过putty登录系统。他试图sudo但得到这个:

sudo adduser jonesjp
Sorry, try again.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
Run Code Online (Sandbox Code Playgroud)

他永远不会被提示输入密码。这是在 CentOS 6 上。

这曾经有效,但另一位管理员进行了一些未知的更改,导致此问题并且他不可用。

centos sudo

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

在 EC2 实例上禁用 ubuntu 用户的 NOPASSWD sudo 访问

如何禁用 EC2 实例上默认 ubuntu 用户的无密码 sudo 访问?这样做安全吗?

ubuntu sudo amazon-ec2

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

如何从sudo用户检查root环境变量?

如何从 sudo 用户检查 root 环境变量?我尝试了 su 和 sudo 的各种键和组合,但没有运气。

比如普通用户$HISTFILESIZE=2000,root用户9999。

vagrant@default-debian-78-64-nocm:~$ echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i
root@default-debian-78-64-nocm:~# echo $HISTFILESIZE
9999
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过 sudo 获取 root $HISTFILESIZE 时 - 它总是返回 2000:

vagrant@default-debian-78-64-nocm:~$ sudo -i echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i su - -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -l -c "echo $HISTFILESIZE"
2000
Run Code Online (Sandbox Code Playgroud)

bash sudo environment-variables

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

sudo mv 失败并显示“不允许操作”

当我在 MacOS 上命令时:

> sudo mv /usr/bin/php /usr/bin/php-52
Run Code Online (Sandbox Code Playgroud)

我得到结果:

mv: rename /usr/bin/php to /usr/bin/php-52: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我能做什么?谢谢!

mac-osx sudo

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