私はLinux Mint 20を使用しており、ショートカットを使用してroot権限でスクリプトを実行したいと思います。ルートパスワードを入力せずにこれを実行したいと思います。そのために、/etc/sudoers.dにスクリプトを登録しました。
/etc/sudoers.d/myscript
username ALL=(ALL) NOPASSWD: /home/xoric/scripts/myscript.sh
テスト目的で、このスクリプトは2つのフォルダのみを生成します。最初にはroot権限が必要ですが、2番目には必要ありません。
/home/xoric/scripts/myscript.sh
#!/bin/bash
mkdir /etc/test1 #requires root
mkdir /home/xoric/test2 #does not require root
次に、このスクリプトを実行するカスタムショートカットキーを作成します。 Ctrl+Alt+W キーの組み合わせを登録しました。
最初の試み
これはテスト目的にのみ使用されます。 Ctrl + Alt + Wを押すと、2番目のフォルダが作成されます。最初のフォルダは作成されません(root権限が必要です)。これは、root権限なしでスクリプトを実行しているために予想される現象です。
2回目の試み
Ctrl+Alt+W を押しても何も起こりません。両方のフォルダは作成されません。つまり、スクリプトは実行されません。私の期待は、スクリプトがroot権限で実行され、パスワードプロンプトなしで実行されることです(sudoers.dに登録されているため)。しかし、これは事実ではありません。
3回目の試み
Ctrl+Alt+W を押すと端末が開き、root パスワードを入力します。これによりスクリプトが実行され、2つのフォルダが作成されます。これが私が達成したいものですが、パスワードを入力せずにすることです。
Linux(Mint)を知っている人のうち、2番目の試みがなぜ機能しないのかをよく知っている人はいますか? Linux Mintはroot権限のショートカットを許可しませんか?それとも、sudoers.dにスクリプトを登録するときに間違いを犯しましたか?よろしくお願いします。
答え1
友達の助けを借りてついに問題を見つけました。 sudoers.dの私のエントリが破損しています。実際には、実際のユーザー名「xoric」の代わりに「username」という文字列が含まれています。これは一般的なコピーと貼り付けエラーです。
そのエントリを修正した後、2回目の試みは正しく機能しました。 Ctrl + Alt + Wを押すと2つのフォルダが作成されます(スクリプトはroot権限で実行され、パスワードプロンプトは必要ありません)。