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権限丸ごと渡すよりはマシなパターンの方が多いだろう。 状況に合わせて設定していきたい。