*nixで過ごす日々

PCでの作業に役立つ情報を提供するブログ

sudoする時に特定のコマンドをパスワードなしで実行する

VMやWSLの開発環境でパッケージマネージャーを操作する時に何度もパスワード入力するのが面倒なので楽をする。

セキュリティに関して

セキュリティ的に良いかどうかは目をつむる。
特定のユーザーやグループに対して、特定のコマンドの実行を許可するという意味では良いとは思う。
システムに破壊的変更ができるものをパスワードレスで実行できるという意味ではヤバいと思う。
そのため、本番環境などでは慎重に設定すること。
ここでは開発用のVMやWSLなどで設定し、よく使うroot権限が必要なコマンドの実行を簡単にすることを目的とする。

特定のコマンドだけパスワード無しにする設定

例としてUbuntuでの設定を記す。

sudo visudo

EDITORが無いと言われた場合、envを使って一時的にEDITORを定義する。

sudo env EDITOR=nvim visudo

EDITOR=nvimの部分は好きなエディタを入れる。
そして次の設定を記述する。

%sudo ALL=PASSWD: ALL, NOPASSWD: /usr/bin/apt

コマンドは,区切りで複数指定できる。

%sudo ALL=PASSWD: ALL, NOPASSWD: /usr/bin/apt, /usr/bin/mount