누군가 Winscp를 사용하여 세션을 열 때 who
또는 명령을 실행할 last
때 해당 세션이 Linux에 표시되지 않습니다 . ssh를 이용해서 접속하기 때문에 나타나는 줄 알았습니다. 그런데 아직 기록이 없습니다. 이는 보안 문제로 판명될 수 있습니다.
즉, 사용자가 로그인하여 특정 파일을 삭제하면 아무 것도 기록되지 않습니다. 어떻게 추적하나요?
답변1
who
그리고 last
로그인한 경우에만 표시됩니다. 사용시에는 scp
원격측의 쉘이 그대로 생성되지 않기 때문에 기술적으로 로그인이 되지 않습니다.
이와 같은 것을 추적하려면 프로세스 계정을 사용해야 합니다. 로깅이라는 패키지는 psacct
로깅 수준을 제공할 수 있습니다(원하는 경우). 원하는 경우 SSH를 통한 로깅을 향상하여 이러한 세부 정보 중 일부를 표시할 수도 있습니다.
명령 who
은 last
이 목적으로 사용되지 않습니다.
결국 누구랑?
이 용어는 로그인된 것과 연결되어 있기 때문에 사람들을 항상 혼란스럽게 하지만 두 가지 별개의 상태입니다. 웹 서버에 접속하면 로그인하지 않고도 원격 시스템의 리소스를 소모하게 됩니다. 이것이 본질적으로 당신이 하고 있는 일입니다 scp
.
Last & Who 매뉴얼 페이지에서 발췌
마지막WHOlast, lastb - 마지막으로 로그인한 사용자 목록을 표시합니다.
who - 누가 로그인했는지 보여줍니다.
예
여기서는 SFTP를 사용하여 서버에 로그인했지만 눈치채지 who
못했습니다 last
.
$ ps auxf | less
...
root 3376 0.0 0.0 7212 1040 ? Ss Sep10 0:00 /usr/sbin/sshd
root 29066 0.0 0.0 10108 3004 ? Ss 09:44 0:00 \_ sshd: sam [priv]
sam 29071 0.0 0.0 10240 1836 ? S 09:44 0:00 | \_ sshd: sam@notty
sam 29072 0.1 0.0 6708 1740 ? Ss 09:44 0:00 | \_ /usr/libexec/openssh/sftp-server
root 29202 0.1 0.0 10084 3052 ? Ss 09:44 0:00 \_ sshd: root@pts/0
root 29204 0.6 0.0 6268 3052 pts/0 Ss 09:44 0:00 \_ -bash
root 29255 0.0 0.0 4624 1108 pts/0 R+ 09:45 0:00 \_ ps auxf
root 29256 0.0 0.0 4288 760 pts/0 S+ 09:45 0:00 \_ less
로그인 쉘로 실행되는 쉘이 없기 때문에 기술적으로 로그인되지 않았습니다. 루트로 시스템에 들어가면 위에 표시된 대로 ssh
쉘이 있습니다 bash
.
출력은 who -a
다음을 확인합니다.
$ who -a
2014-09-10 05:15 398 id=si term=0 exit=0
system boot 2014-09-10 05:15
run-level 5 2014-09-10 05:15 last=S
2014-09-10 05:16 2307 id=l5 term=0 exit=0
LOGIN tty1 2014-09-10 05:16 3785 id=1
LOGIN tty2 2014-09-10 05:16 3786 id=2
LOGIN tty3 2014-09-10 05:16 3787 id=3
LOGIN tty4 2014-09-10 05:16 3788 id=4
LOGIN tty5 2014-09-10 05:16 3792 id=5
2014-09-10 05:16 3794 id=6
2014-09-10 05:16 3799 id=x
root + pts/0 2014-09-25 09:51 . 29300 (mulder.mydom.net)
pts/1 2014-09-24 16:36 20324 id=ts/1 term=0 exit=0
pts/1 2014-09-12 02:40 27603 id=/1 term=0 exit=0
pts/2 2014-09-12 03:21 27820 id=ts/2 term=0 exit=0
SFTP 연결을 사용하는 사용자 sam은 참조되지 않습니다. 셸이 대화형인지 확인하려면 다음 U&L Q&A를 확인하세요.쉘이 로그인/대화형/배치인지 확인하는 방법.