Linux通過 sftp 登錄的使用者未顯示在
通過 sftp 登錄的使用者未顯示在 w
中
我的伺服器是 Centos 5。我在 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
時沒有添加 utmp 條目。scp
看起來很正常,因為scp
實例不是互動式會話。
ForceCommand
也許可以使用orSubsystem
in完成某些事情sshd_config
:可以將處理程序的執行包裝在sftp
登錄 shell 中。(實際上我不建議這樣做,最好保持簡單並使用標準的日誌記錄工具。)