sudoを使用するのに-Oオプションでnmapを実行できないのはなぜですか?

sudoを使用するのに-Oオプションでnmapを実行できないのはなぜですか?

コンピュータがどのポートを使用しているかを確認しようとしています。次の方法がリストされた記事をオンラインで見つけました。

$ sudo nmap -sT -O localhost

私はこれがTCPパケットをリッスンするすべてのポートのリストを提供すると信じています。ただし、このコマンドを入力すると、次の結果が表示されます。

Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:07 EDT
socket troubles in HostOsScan: Permission denied (13)

sudoで実行している場合、自分のコンピュータで何かを実行する権限がどのように不足する可能性がありますか?

私は実行しようとしています:

$ sudo nmap -sT  localhost

そして得る:

Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

私は議論なしに試しましたが、再び許可nmapが拒否されました! ?

$ sudo nmap localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-03 11:05 EDT
Couldn't open a raw socket. Error: Permission denied (13)

nmap's --helpオプションを見て、-OOS検出が有効になっていることを確認しました。特に、このオプションを使用する権限があるのはなぜですかsudo? (注:現在Ubuntu 18.04および20.04を実行しています。)

(注:許可された回答はポートを調べるなど、私の基本的な問題を解決しましたが、コメントセクションの回答では問題が発生した理由を説明しましたnmapsnap

 $ sudo snap connect nmap:network-control

以前はnmap大丈夫だった。

ベストアンサー1

コンピュータがどのポートを使用しているかを確認したい場合は、検索する必要はありません。ポートを直接一覧表示できます。

netstat -nap
ss -nap

ルートでない場合は、この-pフラグを無視してください。このLISTEN行はあなたにとって重要です。この行フィルタリングを使用できますawk。例えば

netstat -nap | awk 'NR==1 || /LISTEN/'

おすすめ記事