次のように実行するには、root権限を必要とするシェルスクリプトを作成するとします。
#!/bin/sh
ip -s -s neigh flush all
ufw enable
特定のコード行がrootとして実行されるのを防ぐ方法、つまりTORブラウザを起動するために上記のスクリプトに行を追加するとします。
#!/bin/sh
ip -s -s neigh flush all
ufw enable
sh -c '"/home/back/Downloads/tor-browser_en-US/Browser/start-tor-browser" --detach || ([ ! -x "/home/back/Downloads/tor-browser_en-US/Browser/start-tor-browser" ] && "$(dirname "$*")"/Browser/start-tor-browser --detach)' dummy %k
TORは常にroot以外のモードで実行されるため、Torがroot以外のユーザーとして実行され、残りのスクリプトがrootユーザーとして実行されるようにするには、上記のスクリプトで何を変更する必要がありますか?
ベストアンサー1
使用sudo
:
#!/bin/sh
ip -s -s neigh flush all
ufw enable
sudo -Hu username sh -c '"/home/back/Downloads/tor-browser_en-US/Browser/start-tor-browser" --detach || ([ ! -x "/home/back/Downloads/tor-browser_en-US/Browser/start-tor-browser" ] && "$(dirname "$*")"/Browser/start-tor-browser --detach)' dummy %k
-H
:$HOME
環境変数をターゲットユーザーのホームディレクトリに設定します。-u
: 次の代わりに、指定されたターゲット・ユーザーでコマンドを実行します。root
username
: 引数は、ターゲット・-u
ユーザーのユーザー名を指定します。