すでに別のユーザーとしてコマンドを実行している場合は、some existing questionsがここにあります。しかし、質問と回答は、コマンドの長いグループではなく、という単一のコマンドに焦点を当てています。例えばBashで別のユーザーとしてコマンドのグループを実行する方法は?
、次のスクリプトを考えてみます。ここで注意すべき重要なポイントのカップルがあります
#!/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'
を:
最後の3つのコマンドは
su
かを使用して別のユーザーとして実行する必要がありますsudo
。この例では3つのコマンドがありましたが、もっと多くのものがあったとします。コマンド自体には一重引用符と二重引用符が使用されています。上記
第二の点は、次の構文を使用することを防ぐ:
su somebody -c "command"
...コマンド自体は引用符が含まれているため。
コマンドを「グループ化」して別のユーザーアカウントで実行する適切な方法は何ですか?
Unixスタックエクスチェンジで不運? – icedwater
も参照してください。http://stackoverflow.com/questions/37586811/pass-commands-as-input-to-another-command-su-ssh-sh-etc/37586820#37586820 – tripleee