标签: sudo

具有 Sudo 权限的用户的权限被拒绝

当我通过 sudo 以 root 身份发出命令时,突然遇到了权限问题。

我可以使用普通权限在我的主目录中创建文件,例如这样的工作:

vi /home/mike/test.txt
Run Code Online (Sandbox Code Playgroud)

但是使用 sudo 运行的等效命令不起作用:

sudo vi /home/mike/test.txt
"test.txt" E212: Can't open file for writing
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,由于权限原因,所有使用 sudo 的命令都会失败。

我假设因为我可以使用普通权限进行写入,所以文件系统只读不是问题。它也不限于文件写入,像“sudo visudo”这样的命令也会因为权限原因而失败。我不知道最近对服务器所做的任何更改会导致这种情况(“sudo”已经在 8 个月左右的时间里为该用户正常工作)。硬重启并没有解决问题。

服务器是:Ubuntu 8.04.2 LTS (hardy)

任何想法或帮助将不胜感激!

ubuntu sudo

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

sudo 需要很长时间

在 Ubuntu 9 64 位 Linux 机器上, sudo 需要更长的时间来启动。“sudo echo hi”需要 2-3 分钟。sudo 上的 strace 告诉 poll("/etc/pam.d/system-auth", POLLIN) 在 5 秒后超时,并且有多个调用(可能是循环)到同一个系统调用(这会导致 2-3 分钟的延迟)。

知道为什么 sudo 必须等待 /etc/pam.d/system-auth 吗?任何可以使 sudo 超时更快的可调参数?

谢谢塞缪尔

linux sudo pam

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

允许 Apache 以不同的用户身份运行命令

我有一个脚本,可以在用户的​​主目录中执行多个命令。这些文件归用户所有,Apache(www-data组)对它们只有读取权限。该脚本需要由 PHP 通过 按需执行exec(),并执行一些文件的删除/解压缩,由于 Apache 没有对目录的写权限,因此失败。

我试过sudoers像这样编辑文件:

www-data ALL=(user) NOPASSWD: /bin/su user -c /home/user/bin/script.sh
Run Code Online (Sandbox Code Playgroud)

但它提示我输入用户的密码

我也试过

www-data ALL=(root) NOPASSWD: /usr/bin/sudo su user -c /home/user/bin/script.sh
Run Code Online (Sandbox Code Playgroud)

但这会提示输入www-data's sudopassword

如何在没有密码的情况下使其工作?

linux php sudo apache-2.2

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

sudo:必须是 setuid root (Mac OS X)

我跑了

$ sudo chown -R $USER /usr/bin 
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试在 /usr/bin 路径下以 sudo 身份运行程序时,我得到了

sudo:must be setuid root
Run Code Online (Sandbox Code Playgroud)

如果我想恢复 chown 应该怎么做?

mac-osx sudo setuid

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

在脚本中使用 sudo

在 shell 脚本中使用 sudo 命令被认为是好还是坏的做法?一个优点是,如果用户以非 root 用户身份运行脚本,她或他将被要求输入密码,而不是脚本失败。另一方面,如果用户最近使用 sudo 运行了一个命令,脚本将隐式地以 root 身份运行命令,这可能不是用户所期望的。

下面是一个例子:

$ cat foo1
#!/bin/sh
sudo bar #implicit sudo
$ ./foo1

$ cat foo2
#!/bin/sh
bar
$ sudo ./foo2 #explicit sudo
Run Code Online (Sandbox Code Playgroud)

sudo

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

sudo 拒绝正确的密码

sudo(我已配置为要求输入密码)拒绝我的密码(就像我输入错误一样)我绝对没有输入错误。我暂时将密码更改为仅字母字符,并且在同一个终端中以纯文本格式看起来不错。我的用户名是这样配置的:

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

我使用的是我的密码,而不是 root 密码,它们是不同的。可以肯定的是,我已经尝试了两者(即使我知道 root 密码不是我应该使用的) - 都不起作用。

我另外将自己添加到“wheel”组中,并包含以下行:

%wheel ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

我有点束手无策了。我不知道什么会导致它表现得好像在接受我的密码,但随后拒绝了它。无论是在终端 shell 还是通过 X11 登录管理器,我都可以使用相同的密码登录。

linux su sudo arch-linux

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

为什么 visudo 说有语法错误?

我正在使用 CentOS

uname -a
Linux mydomain.com 3.2.29-48.63.amzn1.x86_64 #1 SMP Sat Sep 15 01:43:12 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 visudo 将此命令添加到我的 /etc/sudoers 文件中...

Cmnd_Alias     CHOWNCMD = /bin/chown jboss:jboss /usr/java/jboss/server/default/deploy/myclient*.ear
Run Code Online (Sandbox Code Playgroud)

但是当我尝试保存时,它抱怨语法错误。我可以在命令行上运行这个命令(“=”之后的所有内容),所以我很难弄清楚 visudo 抱怨的是什么。任何建议如何修改上述行以使 visudo 表现?

  • 戴夫

centos sudo

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

避免 Jenkins 错误的最佳实践:sudo: no tty present and no askpass program specified

从 Jenkins 运行任何 sudo 命令时,我收到以下错误:

sudo:不存在 tty 且未指定 askpass 程序

我知道我可以通过NOPASSWD在我的/etc/sudoers文件中添加一个条目来解决这个问题,这将允许用户jenkins在不需要密码的情况下运行命令。我可以添加这样的条目:

%jenkins ALL=(ALL)NOPASSWD:/home/vts_share/test/sudotest.sh
Run Code Online (Sandbox Code Playgroud)

...但这会导致以下问题:如何避免在 sudoers 文件中指定完整路径?

我可以添加这样的条目:

%jenkins ALL=NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

...但这允许用户jenkins避免所有命令的密码提示,这似乎有点不安全。我只是好奇我在这里有什么选择,如果有任何我应该考虑的最佳实践。

linux ubuntu sudo jenkins

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

Visudo 没有给出错误,但会问“现在怎么办?”

我正在尝试使用sudo visudo -f /etc/sudoers.d/abe . 我添加了以下内容:

# Allow automatic update of abe
matt    ALL=(root) NOPASSWD: python /home/matt/token-abe/setup.py install --force
Run Code Online (Sandbox Code Playgroud)

但是当我尝试写作并退出时,我得到“现在怎么办?” 没有错误:

$ sudo visudo -f /etc/sudoers.d/abe
[sudo] password for matt: 
What now? e
What now? 
Run Code Online (Sandbox Code Playgroud)

我正在使用 Debian 7。

linux debian sudo debian-wheezy

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

SSH:su root 还是 sudo?

什么是更好的选择:使用 su 切换到 root 或启用 sudo?如果不使用 sudo,入侵者将需要知道允许 ssh 的用户的密码(或密钥)以及 root 密码。使用 sudo 非特权用户的密码就足够了。

我设置了一个新的网络服务器 (Debian 8.2),想知道通过 SSH 安全连接到它的最佳实践是什么,并且我仍然可以轻松使用它。

到目前为止,我已经在 SSH 上禁用了 PermitRootLogin 并切换了端口。iptables 也可以阻止我不需要的一切。现在我必须使用非特权用户登录,然后切换

su root
Run Code Online (Sandbox Code Playgroud)

但是作为 root 工作并不是我听说过的最好的事情......所以我想只授予我的非特权用户 sudo 权限。

然后再次入侵者只需要知道一个密码,因为 sudo 要求提供当前用户密码而不是 root 密码。因此,我通过禁用 SSH 中的 PermitRootLogin 使攻击者更难的计划不再起作用。

所以:su root 还是 sudo?

linux su debian ssh sudo

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

标签 统计

sudo ×10

linux ×6

debian ×2

su ×2

ubuntu ×2

apache-2.2 ×1

arch-linux ×1

centos ×1

debian-wheezy ×1

jenkins ×1

mac-osx ×1

pam ×1

php ×1

setuid ×1

ssh ×1