为了确保设置正确的 PATH 环境变量,我使用了这些sudo -i选项,但发现该sudoers文件没有受到尊重。
这是我的设置:
/etc/sudoers:
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
user ALL=(ALL) ALL
user ALL=NOPASSWD: /usr/local/bin/chef-solo
Run Code Online (Sandbox Code Playgroud)
运行时sudo chef-solo -v不会提示输入密码。运行时sudo -i chef-solo -v会提示输入密码。
在 Ubuntu 12.04 上,当我这样做时
sudo -u <user> ls
Run Code Online (Sandbox Code Playgroud)
我明白了
env: -u: No such file or directory
Run Code Online (Sandbox Code Playgroud)
对于 的任何命令和任何用户<user>,包括我自己和 root,都会发生这种情况。
有什么想法如何解决这个问题吗?
出于安全原因,我已设法PermitRootLogin在我的文件中禁用它。sshd_config我的新用户位于sudoers文件中,但每次我必须使用该sudo bash命令时,如果我想进行安装和其他系统操作,我都必须输入密码。
是否可以自动输入或禁止输入 root 密码,并且仍然是 root 作为我的新用户?
我的目标是通过 ssh 从另一台 Linux 主机以 root 用户身份执行命令。
问题是:环境不允许直接访问root用户。
有效的手动方式是首先通过 ssh-key 连接到非特权用户,然后 su 到 sudo 特权用户,然后 sudo -i/sudo su 到 root 帐户并执行命令。
一种对我来说非常方便的解决方案是使用Python 和 Paramiko
我的问题是,如果没有 Python,这样的事情是否也可能实现。最后,我想执行一个脚本,该脚本读取特权用户密码,然后以 root 用户身份在远程系统上执行命令。
我想到了这样的事情:
ssh -t user01@host su user02 -c 'sudo -S cat /etc/shadow'
Run Code Online (Sandbox Code Playgroud)
如果我直接在机器上执行此命令,它可以工作,但是一旦我通过 ssh 尝试它,就会出现错误:su: invalid option -- 'S'
在我看来,这是 ssh -t 和 sudo -S 组合的问题,但我不明白。
有什么建议么?感谢您的帮助!
我正在阅读MySQL 的手册。
他们建议我命令
cd /usr/local/mysql
sudo ./bin/mysqld_safe // it seems that sudo = . + master rights
Run Code Online (Sandbox Code Playgroud)
是相同的
. /usr/local/mysql/bin/mysql // only ., no master rights
Run Code Online (Sandbox Code Playgroud)
这两个命令的作用相同吗?
我用来rsync在我们的故障转移服务器上镜像许多文件夹。但是,我们的一些文件,例如缩略图或全文索引,是由我们的应用程序在网络用户(名为“nobody”)下生成的,并且默认为限制性权限。
此外,我通过 ssh 执行此操作,其中禁用了 root 访问权限,如果可能,我想保持这种状态。
有什么合理的方法可以告诉 rsync 以 sudo 身份运行吗?或者我应该考虑更改文件权限?
我正在尝试获得与现有 SF 问题的答案相同的结果,而无需输入原始用户的密码,即 I'm userA,并且我希望能够运行命令userB而无需输入任何这些用户的密码。
可以以某种方式提供一个例子来帮助我吗?
我正在使用visudo并查看以下行进行编辑:
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
当我将用户添加到wheel组中时,他们可以添加,su但必须输入 root 密码才能这样做。
在过去的某个时候,我记得我可以访问一台机器,什么时候su需要我自己的密码而不是 root 密码。我visudo该如何设置才能做到这一点?
是否可以允许用户使用 sudo 运行命令,但阻止他们向命令添加任何参数?
例如,如果我希望用户能够运行:
/sbin/mii-tool
Run Code Online (Sandbox Code Playgroud)
但不是:
/sbin/mii-tool -r
Run Code Online (Sandbox Code Playgroud)
谢谢。