ss -eがuidを表示しないのはなぜですか?

ss -eがuidを表示しないのはなぜですか?

以下の情報を含むDebian仮想マシンがあります。

las@Client:~$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"

入力時にオプションのss -nteため、ソケットを使用するプロセスのuidが表示されると予想しましたが、-e表示されず、理由がわかりません。出力は次のとおりです。

las@Client:~$ ss -nte
State       Recv-Q Send-Q                    Local Address:Port                      Peer Address:Port 
ESTAB       0      176                      192.168.56.201:22                        192.168.56.1:50468  timer:(on,204ms,0) ino:12286 sk:ffff88000e7f3140 <->

この問題をどのように解決できますか?

ベストアンサー1

これssコマンド(すべてのバージョン)が表示されますUIDゼロ以外の場合のみ。これはDebian 8 jessie バージョンのソースコード:

    if (show_details) {
        if (s.uid)
            printf(" uid:%u", (unsigned)s.uid);
        printf(" ino:%u", s.ino);
        printf(" sk:%llx", s.sk);
        if (opt[0])
            printf(" opt:\"%s\"", opt);
    }

if (s.uid)ソケット所有者のuid値になるたびに情報が表示されないようにテストします0

追加テスト(ただし、カーネル5.6の使用ssIP ルート 25.6.0)、これは通常のユーザーが実際に所有者の情報を知ることができることを示します。UID独自のソケットではない場合でも、別のソケットです。したがって、項目がないということは、次のuid:2つの意味のみを意味します。ユーザーまたはカーネル所有(異なるがここでは区別できない)。

あなたの場合は、SSHDデーモンは次のように実行されます。、これに関連するすべてのTCPソケットは次のものです。であってもSSHDルートではなくログイン権限を付与します。ユーザーログインが許可されていますSSHDどのTCPソケットにも接続されていません:次に接続されています。SSHDマスター/スレーブデーモン(または別々のインスタンス)を介してPTYまたは使用管路。したがって、ss転送を介してローカルにログインしたユーザーとTCP接続を一致させるために使用することはできません。SSH

おすすめ記事