【发布时间】:2017-07-26 23:39:18
【问题描述】:
我尝试在脚本中使用 vi 命令,此外我尝试在同一脚本中传递 sudo 密码。所以我有类似的东西:
echo mypassword | bash -c "echo $'Goappendthis\E:x\n' | sudo vi /etc/test"
vi 命令成功,但它仍然不断询问密码。如何在没有密码的情况下执行此操作,以便可以在脚本中为多个主机运行相同的命令?
【问题讨论】:
-
顺便说一句,以
ex调用它会将vi置于为非交互使用而设计的模式下,或者使用vi -s scriptfile将读取vi 命令以从scriptfile运行。 -
感谢您的 cmets。奇怪的是,公司明智的政策不允许我使用 sed、awk、python 或 perl 单线更改 root 拥有的文件。看起来它只允许使用 sudo vi 修改文件,并且考虑到我有数百个主机要修改,我需要找到一种方法来自动化它。所以基本上我需要运行 sudo vi 相同的文件在文件末尾添加一行然后保存。不然怎么办?
-
即使您遵守了政策的信函,您也肯定没有遵守这里的精神。无论如何,典型的正确做法是使用任何编排系统(Puppet、Chef、SaltStack、CFEngine 等)提供的工具——贵公司用于模板化文件的生成。
-
...你能把这件事往上踢几次,看看谁负责这项政策,以及他们认为哪些是经过批准的做法吗?