我在/ etc/sudoers中有这个:
%wheel myhostname =NOPASSWD: /bin/bash -c "echo foo && echo bar", \
/bin/bash -c echo foo
Run Code Online (Sandbox Code Playgroud)
在sudo /bin/bash -c echo foo没有提示输入密码的情况下执行工作.
但是,sudo /bin/bash -c "echo foo && echo bar"仍然要求输入密码.
我尝试了很多变化,但没有被接受.
哪里出错?/如何允许-c后跟多个命令?
我们可以使用heredocs使用sudo运行多个命令吗?
我在运行多个命令时遇到问题(需要为每个命令传递密码):
echo 'password'| sudo -S ls
echo 'password'| sudo -S cat /var/log/abc.log
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我如何在脚本中自动化这个?喜欢:
echo 'password' | sudo -S << ENDBLOCK
ls
cat
ENDBLOCK
Run Code Online (Sandbox Code Playgroud) 我正在一个系统上进行性能测试,我需要确保从磁盘读取数据,并且它不仅仅是缓存(比如早期的测试).我在这里读到我可以使用命令删除缓存
echo 3 | sudo tee /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
但请注意,即使我的帐户是管理员帐户(登录彼得),它仍然需要我的密码.我希望能够在批处理脚本中运行它而无需输入密码(因为这显然是手动的)
更多的研究让我得到了sudoers文件.我的计划是将上面的命令放入一个名为dropCache的单行脚本中,并编辑sudoers以便我可以在不输入密码的情况下运行它.所以我添加了这条线
ALL ALL=(ALL)NOPASSWD:/home/peter/dropCache
Run Code Online (Sandbox Code Playgroud)
在我的sudoers文件的末尾(使用visudo).使用我的管理员帐户,如果我运行
sudo -l
Run Code Online (Sandbox Code Playgroud)
我明白了
(ALL) NOPASSWD: /home/peter/dropCache
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行我的dropCache脚本,我仍然会被要求输入密码
./dropCache
[sudo] password for peter:
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助将非常感激.我正在运行Ubuntu 12.04
谢谢彼得
我刚刚更新到OSX Yosemite,每次执行sudo命令时,操作系统会在密码提示之前发出此警告:
WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo.
Run Code Online (Sandbox Code Playgroud)
这个警告怎么能被压制?
我是 Ubuntu 新手。当在 Visual Studio Code 中编辑任何内容时,我必须输入密码。因此,我尝试更改 sudoers 文件,但之后我无法找到发生了什么,并且还出现如下错误。
我用命令来改变我
sudo nano -w /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
之后我按了ctrl+x
/etc/sudoers: syntax error near line 26 <<<
sudo: parse error in /etc/sudoers near line 26
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Run Code Online (Sandbox Code Playgroud)
谢谢。
我一直在尝试使用Thor编写一个小型库来帮助我快速创建新项目和站点.我写了这个小方法:
def ssh(cmd)
Net::SSH.start( server_ip, user, :port => port) do |session|
session.exec cmd
end
end
Run Code Online (Sandbox Code Playgroud)
在需要时帮助我在远程服务器上运行快速命令.
问题是当我需要在远程端的sudo下运行一个命令时,脚本似乎挂在我身上.例如,当执行此...时
ssh("sudo cp #{file_from_path} #{file_to_path}" )
Run Code Online (Sandbox Code Playgroud)
该脚本将提示我输入密码
[sudo] password for user:
Run Code Online (Sandbox Code Playgroud)
但是输入之后整个事情都会变得很糟糕.
有人会碰巧知道为什么它会完全挂起,我可以做些什么来在Net :: SSH(或其他替代方案)下的远程服务器上运行sudo命令?
*注意:在建议之前,我最初开始将这个库作为Capistrano下的食谱编写,直到我遇到Thor,并认为这是一个尝试它的好机会.如果需要的话,我不反对将整个事情切换回Capistrano,但如果没有一种简单的方法在远程服务器上运行sudo命令,我会感到非常惊讶.
我试图允许管理组中的所有用户在jar没有密码的情况下以SUDO 运行文件,我已经编辑了sudoers文件(使用visudo)并尝试了一些命令,但它仍然提示我每次输入密码
内容/etc/sudoers:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need …Run Code Online (Sandbox Code Playgroud) 我需要从php执行命令写入我的vhosts.conf.我有一个add_vhost.sh文件:
cat /home/www/test/conf/vhosts.conf >> /etc/httpd/conf.d/vhosts.conf
Run Code Online (Sandbox Code Playgroud)
这是PHP脚本:
exec($path_to_add_vhost_sh_file, $output);
Run Code Online (Sandbox Code Playgroud)
我想设置没有密码要求peter用户执行此文件,所以我做了我的下一件事/etc/sudoers
peter ALL=(ALL)NOPASSWD:/home/www/test/conf/add_vhost.sh但即使在控制台中它仍然无法正常工作.fedora 15
我有一个iftop在文本模式下运行的脚本,将输出减少到我所关心的内容,并将其与命令的输出一起保存到文本文件中date(我正在监视一段时间内各种接口上的网络使用情况)。我遇到的唯一问题是我尝试通过 crontab 每 15 分钟运行一次脚本,并且为了运行该iftop命令,我需要 sudo 权限。有谁知道一些方法来更改权限,iftop这样我就不需要 sudo 权限?
或者,如果我可以让脚本能够使用 sudo 运行命令,那对我来说也很好。我尝试通过添加脚本到 sudoers 文件sudo visudo并添加以下行:
user ALL=(ALL) NOPASSWD: /home/user/network_usage.sh
但这不起作用...也许是从 crontab 执行的结果?
谢谢,
-埃里克
登录ssh后,收到此消息:
'用户名'不在sudoers文件中.将报告此事件.
我该如何解决这个问题?我正在将ssh连接到我的虚拟专用服务器.