解決済み
/ etc/sudoersの#includedir行をコメントアウトしないことに加えて、
sudoers.d/myOverrides
をSudo visudo -f /etc/sudoers.d/myOverrides
で編集し、最初に試した構文を使用してトリックを行いました。
そして、私のように馬鹿になりたくない場合は、visudoを保存するときに.tmpを削除してファイルを上書きし、構文が正しいことを確認してください。これはここでは問題ではありませんでしたが、簡単にできました;-)
Sudo cryptsetup luksClose XYZ
を実行して、LUKSコンテナーのマウントを解除して閉じる必要があるシェルスクリプトを書きたいのですが。
cryptsetup
の特別な点は、カーネルモジュールdevice-mapper
を使用してluksコンテナーを管理することです。マニュアルから得ることができることは、このカーネルモジュールに依存しており、これを回避する方法はないということです。
つまり、Sudoとして実行する必要があるため、プログラムは後でデバイスマッパーをrootとして呼び出すことができます。しかし、device-mapperが呼び出されるまで、エラーなしでSudoなしで実行することもできます。
visudo
を使用して、Sudo cryptsetup
が呼び出されている間、pudoを要求するSudoを停止しようとしました。
最初に
user ALL=(ALL) NOPASSWD: /sbin/cryptsetup
しかし、これはcryptsetupがSudoとして実行されることを意味するのではなく、単にSudoを呼び出す必要がないことを理解しました。そもそもそれはありません。
次に、/ sbin/cryptsetupを/ bin/Sudoの引数として使用して、それをだまそうとしました
user ALL=(ALL) NOPASSWD:/bin/Sudo /sbin/cryptsetup
(常に、この行はsudoersファイルの最後に追加され、最後に解釈された行になります)
ユーザーアカウントにPWなしで「Sudo cryptsetup luksClose XYZ」をそのまま実行する権限を与える別の方法はありますか? (または、cryptsetupマニュアルに欠けているもの)
編集:通常はPCManFMを使用してコンテナーを管理しています。コンテナーを閉じるためにPWを入力する必要はありません(cの復号化のためだけ)この魔術とは何ですか?
編集2:簡単な答えがない場合は、起動時にrootとしてスクリプトを実行し、キーボードショートカットを使用して2つの別個の開閉スクリプトを実行する代わりに、ユーザーからのキー入力を待機させます。この方法では、NOPASSWDをまったく作成する必要がないと思います。これは良いことです。
とにかく知りたいのですが。
前もって感謝します
Cryptsetupをパスワードなしで使用するための最初の構文は正しいです。これを、システムをサスペンドするために作成したエイリアスに使用します。
me ALL=(ALL:ALL) NOPASSWD: /bin/systemctl suspend
エイリアスでsudoを使用する必要があります:alias quit='Sudo systemctl suspend'
私は個人的にあなたが望む正確なコマンドをすべてのオプションとともに入れて、Sudo特権が必要なものだけに制限されるようにします。