SFTP를 통해 로그인한 사용자는 "w"에 표시되지 않습니다.

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를 통해 연결하면(위의 사용자처럼) 존재합니다. 이것이 표준적인 행동입니까?

답변1

man utmp:

utmp 파일을 사용하면 현재 시스템을 사용하고 있는 사람에 대한 정보를 검색할 수 있습니다. 모든 프로그램이 utmp 로깅을 사용하는 것은 아니기 때문에 현재 이 시스템을 사용하는 사용자가 더 많을 수 있습니다.

따라서 sshd연결을 처리할 때 utmp 항목이 추가되지 않아야 합니다. 인스턴스가 대화형 세션이 아니기 scp때문에 이는 정상적으로 보입니다 .scp

ForceCommandSubsystemor in을 사용하여 무언가를 수행 할 수도 있습니다 sshd_config. sftp로그인 셸에서 처리기 실행을 래핑할 수 있습니다.

(실제로는 이 작업을 권장하지 않습니다. 단순하게 유지하고 표준 로깅 기능을 사용하는 것이 더 좋습니다.)

관련 정보