![Linux で特定の CLI コマンドにパスワードを設定できない](https://rvso.com/image/169425/Linux%20%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AE%20CLI%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AB%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84.png)
コンピュータ環境
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