如果我在中间运行bash脚本,有没有办法切换到root用户,处理命令,然后退出root模式?例如,我想在bash脚本中包含这些命令:
sudo su
umount /home/user/myMount
exit
问题是在第一行运行后,shell进入root模式,但随后停止执行。当然,我可以在这一点上创建并执行第二个脚本,但这会破坏脚本的目的,因为我可以自己输入命令。
另一个显而易见的想法是在开始时使用root用户运行脚本。但是,如果我是root用户,则此脚本中的某些其他命令会失败,因为它们会通过这么多访问来暴露安全漏洞。
所以,我需要一种方法进入根目录然后退出它。
感谢。
答案 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