这里已经询问了关于作为另一个用户运行命令的 一些现有的问题。但是,问答集中在 一个简单的命令上,而不是一长串命令。
例如,考虑以下脚本:
#!/bin/bash
set -e
root_command -p param1 # run as root
# these commands must be run as another user
command1 -p 'parameter with "quotes" inline'
command2 -p 'parameter with "quotes" inline'
command3 -p 'parameter with "quotes" inline'
这里有几点要注意:
最后三个命令必须作为另一个使用 su
或 sudo
的用户运行。在这个例子中有三个命令,但是假设有更多的..。
命令本身使用单引号和双引号。
上述第二点防止使用以下语法:
su somebody -c "command"
因为命令本身包含引号。
将命令“分组”并在另一个用户帐户下运行它们的正确方法是什么?