나는 지금 책을 읽고 있어요.Unix 및 Linux 시스템 관리 - Evi Nemeth. 70페이지의 "su: 사용자 ID 교체" 항목 아래에 다음과 같은 설명이 있습니다."su는 루트로 실행된 명령을 기록하지 않지만 누가 루트가 되었는지, 언제 루트가 되었는지 설명하는 로그 항목을 생성합니다." 나도 나만큼 혼란스러워수겐CentOS Linux 버전 7.6.1810 및 실행 중역사명령을 실행하면 루트로 실행한 명령이 보입니다.
답변1
history
현재 쉘에서 실행된 명령만 표시됩니다. 이 역사에는 많은 단점이 있습니다.
- 사용자가 이를 수행하지 않도록 쉘을 구성하면 어떤 파일에도 저장되지 않을 수 있습니다.
- 기록되더라도 사용자에게 쓰기 권한이 있는 파일(보통 ~/.history, ~/.bash_history, ~/.zsh_history 또는 이와 유사한 파일)에 있습니다. 따라서 사용자가 위조할 수 있습니다.
전체적으로 이것은 신뢰할 수 있는 보안 감사 추적이 아닙니다.
책에서 "로깅 명령"이 의미하는 것은 명령을 일부 로그에 기록하는 것입니다.아니요일반 사용자가 접근 가능합니다. 책은 말한다su
하다무언가를 기록하려면 다음을 시도해 보세요.
$ su
Password:
root@firefly:/home/minoru# echo hello
hello
root@firefly:/home/minoru# exit
이제 기록된 내용을 살펴보겠습니다 auth.log
(경로는 대부분의 배포판에서 동일해야 함).
$ sudo less /var/log/auth.log
Jun 12 22:40:35 firefly su: (to root) minoru on pts/8
Jun 12 22:40:35 firefly su: pam_unix(su:session): session opened for user root by (uid=1000)
Jun 12 22:40:41 firefly su: pam_unix(su:session): session closed for user root
나(미노루)가 슈퍼유저 권한을 갖고 있는 것을 볼 수 있고,언제echo hello
나는 처형된 흔적 도 없이 그렇게 했습니다 .
sudo
이제 책의 다음 부분에서 설명할 다른 도구와 비교해 보겠습니다 .
$ sudo echo hello
hello
$ sudo less /var/log/auth.log
Jun 12 22:44:48 firefly sudo: minoru : TTY=pts/8 ; PWD=/home/minoru ; USER=root ; COMMAND=/bin/echo hello
Jun 12 22:44:48 firefly sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 12 22:44:48 firefly sudo: pam_unix(sudo:session): session closed for user root
누가 언제 권한을 얻었는지 알 수 있을 뿐만 아니라 내가 어떤 디렉터리(/var/log)에 있었는지, 내가 실행한 명령, 심지어 내가 사용한 콘솔까지 볼 수 있습니다. 훨씬 낫다!
답변2
보고 있는 사용법은 history
셸이 아니라 셸에 의해 기록됩니다 su
. su
루트로 실행되는 명령 자체는 기록되지 않습니다. 작성자는 sudo
이를 해당 매개변수 로깅(전체 세션을 로깅하도록 구성할 수도 있음)과 대조 할 수 있습니다 .
답변3
로깅은 일반적으로 표준 위치에 이벤트 정보를 저장하는 것을 의미합니다 /var/log
. 활동이 흔적을 남기는 다른 방법이 많이 있지만 여기서는 분명히 이것이 의미하는 바가 아닙니다. 자세한 내용은 동일 도서 로그인 장(5판 572쪽)에서 확인하실 수 있습니다.