首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在作业脚本中切换到根用户

在作业脚本中切换到根用户
EN

Stack Overflow用户
提问于 2014-06-18 14:51:56
回答 2查看 6.5K关注 0票数 1

通过终端进行日志记录,我可以切换到root用户:

代码语言:javascript
复制
ubuntu@ip-10-0-0-70:~$ sudo -s
root@ip-10-0-0-70:~# whoami
root

因此,我用以下内容创建了一个作业脚本:

代码语言:javascript
复制
whoami;
echo "1st step";
sudo -s;
echo "2nd step";

当我运行这个时,它会打印:

代码语言:javascript
复制
ubuntu
1st step

在印刷“第一步”之后,它就永远被塞了下来。似乎sudo -s命令有问题。

  • 尝试过sudo -i,但同样发生
  • 尝试过sudo su - root,但同样发生
  • 我也是以ubuntu用户的身份登录

有没有办法在运行脚本中切换到root?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-03 11:54:59

这是预期的行为。您正在通过'sudo -s‘运行一个shell,然后不离开/退出它!所以它会永远等待一些永远不会到来的东西。

您可能可以添加'sudo‘作为脚本的高级选项(其中写着“使用解释器或前缀运行脚本。例如: sudo,time:")。但是它会以root的形式运行整个脚本。如果您只想以根用户身份运行特定的命令,只需在命令前面加上sudo,如下所示:

代码语言:javascript
复制
sudo "enter_your_command_to_be_run_as_root_here"
票数 1
EN

Stack Overflow用户

发布于 2016-01-19 18:19:46

输入以Sudo为前缀的命令将在大多数linux发行版上生成以下错误。

代码语言:javascript
复制
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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24288732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档