web-dev-qa-db-ja.com

sftpでログインしたユーザーが `w`に表示されない

私のサーバーはCentos5です。sshd_configに次のように設定されたchroot環境があります。

Match group sftponly
    ForceCommand internal-sftp
    ChrootDirectory %h
    AllowTcpForwarding no
    PasswordAuthentication yes
Match

ユーザーがsftpで接続すると、/ var/log/secureに次の行が追加されます。

Sep  3 15:30:20 servername sshd[26548]: pam_unix(sshd:session): session opened for user test by (uid=0)

ただし、wの実行時には存在しません:

[root@servername home]# w
 15:30:47 up 156 days,  1:00,  3 users,  load average: 0.05, 0.18, 0.32
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
mike     pts/1    12.34.56.78      Fri16    0.00s  0.10s  0.03s sshd: mike [priv]

ただし、ユーザーがSSHで接続する場合(上記のユーザーのように)、ユーザーは存在します。これは標準的な動作ですか?

4
Mike

man utmp

Utmpファイルを使用すると、現在システムを使用しているユーザーに関する情報を見つけることができます。すべてのプログラムがutmpロギングを使用しているわけではないため、現在システムを使用しているユーザーが増える可能性があります。

したがって、sshd接続を処理するときに、scpがutmpエントリを追加していない必要があります。 scpインスタンスはインタラクティブセッションではないため、非常に正常に見えます。

sshd_configForceCommandまたはSubsystemを使用して何かを行うことができるかもしれません:ログインシェル内でsftpハンドラーの実行をラップすることが可能かもしれません。

(実際にはお勧めしません。シンプルに保ち、標準のログ機能を使用することをお勧めします。)

3