Bash脚本 - 更改为root然后退出root

时间:2013-04-12 23:10:31

标签: bash root sudo

如果我在中间运行bash脚本,有没有办法切换到root用户,处理命令,然后退出root模式?例如,我想在bash脚本中包含这些命令:

sudo su
umount /home/user/myMount
exit

问题是在第一行运行后,shell进入root模式,但随后停止执行。当然,我可以在这一点上创建并执行第二个脚本,但这会破坏脚本的目的,因为我可以自己输入命令。

另一个显而易见的想法是在开始时使用root用户运行脚本。但是,如果我是root用户,则此脚本中的某些其他命令会失败,因为它们会通过这么多访问来暴露安全漏洞。

所以,我需要一种方法进入根目录然后退出它。

感谢。

2 个答案:

答案 0 :(得分:2)

指定命令

sudo 命令可以接受命令和可选参数。例如:

sudo umount /home/user/myMount

这将仅以root身份运行指定的命令及其参数。如果要以另一个用户身份运行该命令,可以使用-u标志。例如,要将 umount 作为Fred运行,您可以使用:

sudo -u fred umount /home/user/myMount

虽然肯定有其他方法可以解决这个问题,但这是迄今为止最简单和最常见的方法。

答案 1 :(得分:1)

要以root身份执行umount,请使用

sudo umount /home/user/myMount