私のサーバーは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で接続する場合(上記のユーザーのように)、ユーザーは存在します。これは標準的な動作ですか?
man utmp
:
Utmpファイルを使用すると、現在システムを使用しているユーザーに関する情報を見つけることができます。すべてのプログラムがutmpロギングを使用しているわけではないため、現在システムを使用しているユーザーが増える可能性があります。
したがって、sshd
接続を処理するときに、scp
がutmpエントリを追加していない必要があります。 scp
インスタンスはインタラクティブセッションではないため、非常に正常に見えます。
sshd_config
でForceCommand
またはSubsystem
を使用して何かを行うことができるかもしれません:ログインシェル内でsftp
ハンドラーの実行をラップすることが可能かもしれません。
(実際にはお勧めしません。シンプルに保ち、標準のログ機能を使用することをお勧めします。)