Nmapを利用する際、root権限を渡したくないので一般ユーザでsudoもなしで実行できるようにしたいことがある。 そんなときは、まず以下のようにnmapのバイナリのグループと権限を変更する。
chgrp adm /usr/bin/nmap
chmod 750 /usr/bin/nmap
次に、setcapコマンドを実行するためにパッケージをインストールする。
sudo yum install libcap # RHEL系の場合
sudo apt-get install libcap2-bin # Debian/Ubuntu系の場合
パッケージインストール後、以下のコマンドを実行して一般ユーザが実行できるよう権限を付与する。
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/bin/nmap
最後に、nmapを実行させるユーザをサブグループに登録してやる。
usermod -aG adm ユーザID
以上。 ポートスキャナーなので、基本は一般ユーザに渡すのはどうかと思うのだが、root権限丸ごと渡すよりはマシなパターンの方が多いだろう。 状況に合わせて設定していきたい。