다른 사용자의 명령 기록을 보려면 어떻게합니까?
내 컴퓨터의 관리자입니다. 나는보기를 통해 정상적인 역사를 볼 수 /home/user_name/.bash_history
있지만 user_name
그들이 할 때 그 명령을 볼 수는 없습니다 sudo
.
한 명의 사용자가 실행 한 모든 명령을 볼 수있는 방법이 있습니까?
답변
데비안 기반 운영 체제에서
tail /var/log/auth.log | grep username
사용자 sudo
기록을 제공해야합니다 . 사용자의 일반 + sudo 명령에 대한 통일 된 명령 기록을 얻는 방법이 없다고 생각합니다.
RHEL 기반 운영 체제에서는 /var/log/secure
대신 확인해야합니다 /var/log/auth.log
.
답변
다음을 테스트하고 매력처럼 작동했습니다.
sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
답변
사용자가 다음과 같이 명령을 발행 한 경우 sudo somecommand
와 같이 명령을 실행 한 경우 시스템 로그에 명령이 나타납니다.
사용자가 함께 쉘을 양산하는 경우 예를 들어, sudo -s
, sudo su
, sudo sh
, 등, 다음 명령은 수 ,에있는 루트 사용자의 역사에 표시 /root/.bash_history
또는 이와 유사한.
답변
# zless /var/log/auth*
당신의 친구입니다. gzip 파일도 열립니다. 당신은 :n
앞으로 또는:p
뒤로 .
또는 # journalctl -f -l SYSLOG_FACILITY=10
예를 들어 사용할 수 있습니다 . 아치 리눅스 위키 에서 이에 대해 더 읽어보기
답변
답변
아마이 링크는 당신에게 가치가있을 것입니다 : http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html
그러나 bash_history에 흔적을 남기지 않는 것은 공백 등으로 명령을 시작하는 문제 일뿐입니다. 이력은 로깅 도구가 아닌 도우미입니다.
독일, Daniel Leschkowski 인사말
답변
논리는 다른 많은 목표에도 적용됩니다.
/ home / filesystem에서 각 사용자의 .sh_history를 읽는 방법은 무엇입니까? 수천 개가 있다면 어떨까요?
#!/bin/ksh
last |head -10|awk '{print $1}'|
while IFS= read -r line
do
su - "$line" -c 'tail .sh_history'
done
여기 스크립트가 있습니다.