新しいtmuxセッションを開き、そのtmuxセッションで別のユーザーとしてコマンドを実行するスクリプトを作成しようとしています。
これの目的は、他のUNIXユーザーに割り当てられたゲームサーバーに対して新しいtmuxセッションを作成することです。サーバーに独自のユーザーを提供するのは良い習慣だと聞きました。しかし、便宜のために、まだデフォルトのユーザーのホームディレクトリにサーバーを起動するスクリプトを残したいと思います。私のプライマリユーザーがtmuxセッションを使用できるようにしても、ゲームサーバーのユーザーにログインし続けることを願っています。
最大の問題は、バイパスできないパスワードプロンプトがあるため、tmuxセッションに接続し、パスワードを入力してから分離する必要があることです。私が試したことは次のとおりです。
#!/bin/sh
tmux new -d -s Minecraft sudo -u minecraft /home/minecraft/server/start.sh
su - Minecraft
sudoでスクリプトを実行してスクリプトに追加するすべての組み合わせを試しましたが、su Minecraft -c "script"
すべての組み合わせでtmuxセッションに接続してログインする必要があるか、機能せずにtmuxを開くことはありません。セッション。
接続後に分離を介してログインせずにtmuxを呼び出すスクリプトを実行するときに、私のsudoパスワードや他のユーザーのパスワードを入力できる解決策を見つけたいと思います。
ベストアンサー1
2つの方法:
- ユーザーがパスワードなしで操作を実行したり、明示的に
/etc/sudoers
実行できるように編集します。sudo -u minecraft
sudo -u minecraft /home/minecraft/server/start.sh
- コマンドの前に
sudo -u minecraft sleep 0
スクリプトを実行してくださいtmux
。パスワードの入力を求められます。sudo
次の数分間の後続のコマンドにはパスワードは必要ありません。