내 서버는 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
ForceCommand
Subsystem
or in을 사용하여 무언가를 수행 할 수도 있습니다 sshd_config
. sftp
로그인 셸에서 처리기 실행을 래핑할 수 있습니다.
(실제로는 이 작업을 권장하지 않습니다. 단순하게 유지하고 표준 로깅 기능을 사용하는 것이 더 좋습니다.)