Linux で特定の CLI コマンドにパスワードを設定できない

Linux で特定の CLI コマンドにパスワードを設定できない

コンピュータ環境

OS: Arch Linux - Manjaro

シェル: zsh

標的

次のコマンドを有効にしようとしていますパスワード入力を必要としないメインユーザーアカウントの場合:アブ

sudo systemctl stop NetworkManager
sudo systemctl start NetworkManager

失敗した試み

私はオンライン ヘルプのいくつかを読んで従おうとしましたが、次のコードを使用してsudo -iファイルを作成することでここまで到達しました。/etc/sudoers.d/ab

ab ALL=(root) NOPASSWD: sudo systemctl stop NetworkManager
ALL=(root) NOPASSWD: sudo systemctl start NetworkManager

トラブルシューティングの試み

以下の編集を試みましたが、成功しませんでした。

  • rootに変更するALL
  • systemctlに変更する/bin/systemctl
  • 削除するsudo

編集して保存するたびに、cat /etc/sudoers.d/ab変更が行われたか確認し、常に新しいターミナルを開いてコマンドを試し、そのたびにパスワード入力を求められた状態で以下の組み合わせを試します。

sudo systemctl start NetworkManager
sudo /bin/systemctl start NetworkManager
systemctl start NetworkManager
/bin/systemctl start NetworkManager

質問

新しいターミナルを起動するだけで十分ですか、それとも変更を開始するにはシステム全体を再起動する必要がありますか?

それとも別のステップを忘れているのでしょうか?

答え1

の行は/etc/sudoers.d/abおそらく次のようになります。

ab ALL=(root) NOPASSWD: /bin/systemctl stop NetworkManager
ab ALL=(root) NOPASSWD: /bin/systemctl start NetworkManager

通常の、ローカルに保存された sudoers.d ファイル (LDAP サーバーに保存された sudoers 情報のような高度なものはありません)を使用するとsudo、sudoers ファイルへの変更は、ログアウト/ログイン、新しいターミナルの起動などを行う必要なく、すぐに有効になります。

通常、sudoは成功した使用試行と失敗した使用試行の両方をログに記録するため、 からのメッセージについては適切なログ ファイル (通常はディストリビューションに応じて/var/log/secureまたは/var/log/auth.log)を確認する必要があります。これらのメッセージには、 を介してユーザーが実行しようとしているコマンドが、それを許可するには sudoers ファイルに書き込む必要がある正確な形式でsudo含まれています。sudo

関連情報