sudoでスクリプトを実行し、パスワードを自動補完する方法

sudoでスクリプトを実行し、パスワードを自動補完する方法

私はWindows用のBash(Linuxサブシステム)を持っていて、Linux上で実行されているアプリケーション用のいくつかのPowershellスクリプト(面白い)を作成してデスクトップから起動できます。

すべてが仮想化され、オフラインであるため、すでに内容をすべて知っているので、セキュリティに関する講義をあまり探していないだけで楽しい学習経験になることを願っています。

これが私が思いついたものですが、2つの問題があります。

1:私のスクリプトは最初の行以降は続行されません。したがって、powershellはbashと入力しますが、後続のコマンドは実行しません。

2: ルートパスワードを入力する必要があります。一部のアプリにはルートアクセスが必要なため、これをスキップするか、単に入力してもらいたいです。

bash (powershell command to drop into the bash shell)
export DISPLAY=:0 (necessary for gui apps)
sudo (app name)
(app asks for password)
Password

したがって、このコマンドを1つずつ実行すると正常に動作しますが、添付のSynaptic Package ManagerとPowerShellのスクリーンショットを参照してください。 ここに画像の説明を入力してください。

ベストアンサー1

解決策は2つの部分に分けられます。

パート1 - スクリプトの実行

プロセスは簡単です。スクリプト全体を bash に引数として渡す必要があります。

bash -c 'export DISPLAY=:0 ; sudo <app_name>'

私はPowerShellを使用しません。したがって、上記の行のpowershell構文に従って関連部分をエスケープしてください。

パート2 - パスワードをスキップ

これを行うには、sudoersファイル内のパスワードのないログインを許可する必要があります/etc/sudoersuser使い終わったら、次のコードを入力してください(あなたのコードに置き換えてください)。username/etc/sudoerssudo nano /etc/sudoers

user ALL=(ALL) NOPASSWD: ALL 

ただし、これはsudoのデフォルトの動作を変更し、そのユーザーが使用されたときにパスワードを入力する必要はありません。sudo

おすすめ記事