通过终端进行日志记录,我可以切换到root用户:
ubuntu@ip-10-0-0-70:~$ sudo -s
root@ip-10-0-0-70:~# whoami
root因此,我用以下内容创建了一个作业脚本:
whoami;
echo "1st step";
sudo -s;
echo "2nd step";当我运行这个时,它会打印:
ubuntu
1st step在印刷“第一步”之后,它就永远被塞了下来。似乎sudo -s命令有问题。
sudo -i,但同样发生sudo su - root,但同样发生有没有办法在运行脚本中切换到root?
发布于 2014-07-03 11:54:59
这是预期的行为。您正在通过'sudo -s‘运行一个shell,然后不离开/退出它!所以它会永远等待一些永远不会到来的东西。
您可能可以添加'sudo‘作为脚本的高级选项(其中写着“使用解释器或前缀运行脚本。例如: sudo,time:")。但是它会以root的形式运行整个脚本。如果您只想以根用户身份运行特定的命令,只需在命令前面加上sudo,如下所示:
sudo "enter_your_command_to_be_run_as_root_here"发布于 2016-01-19 18:19:46
输入以Sudo为前缀的命令将在大多数linux发行版上生成以下错误。
sudo: sorry, you must have a tty to run sudo您可以通过运行'visudo‘并注释掉默认值行或从默认值行中删除'requiretty’来启用sudo而不使用tty。
详情可在此查阅:
http://www.cyberciti.biz/faq/linux-unix-bsd-sudo-sorry-you-must-haveattytorun/
https://stackoverflow.com/questions/24288732
复制相似问题