コンピュータ環境
オペレーティングシステム: Arch Linux - Manjaro
シェル:zsh
目的
次のコマンドをアクティブにしようとしています。パスワードは必要ありません私のデフォルトのユーザーアカウントの場合:ab
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
sudo
一般ローカルに保存されている sudoers.d ファイル (LDAP サーバーに保存されている sudoers 情報ほど高度なファイルはありません) を使用すると、sudoers ファイルへのすべての変更はログアウト/ログイン、新しい端末の起動、または同様の操作を行うことなくすぐに適用されます。 。
sudo
成功と失敗の試行は通常記録されているため、メッセージが存在するかどうか、そのログファイル(通常は展開に応じてまたは/var/log/secure
)を確認する必要があります。これらのメッセージには、ユーザーがsudoersを介して実行したいコマンドが実行を許可するためにsudoersファイルに書き込む必要がある正確な形式で含まれています。/var/log/auth.log
sudo
sudo