特定のスクリプト行がrootとして実行されるのを防ぎます

特定のスクリプト行がrootとして実行されるのを防ぎます

次のように実行するには、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ユーザーのユーザー名を指定します。

おすすめ記事