유닉스에서 사용자 명령 기록을 어떻게 확인할 수 있습니까?


13

'history'명령이 유닉스 터미널에 입력 한 명령 목록을 제공한다는 것을 알고 있습니다.

현재 시스템에 로그온 한 모든 사용자의 명령 기록을 보려면 어떻게합니까?


프로그래밍과 관련이 없습니다. superuser.com에 문의하십시오 .

정보를 얻는 표준 도구가 없으므로 프로그래밍 (적어도 '스크립트 작성'의 의미에서)과 관련이 있다고 생각합니다.
IanH

답변:


11

현재 로그인 한 사용자 목록이 /var/run/utmp표시 됩니다 (참조 man 5 utmp). 이력은 ~ / .history에 저장되거나 ~ / .bash_history의 bash 사용자를 위해 저장됩니다. 다른 쉘은 다른 히스토리 파일을 사용할 수 있으므로 실제로 모든 정보를 얻는 것은 쉽지 않습니다.

또한 사용자가 여러 번 로그인 한 경우 .bash_history 파일이 항상 신뢰할 수있는 것은 아닙니다.

utmp파일 을 읽으려면 이라는 "프론트 엔드"가 who있으므로 현재 로그인 한 사용자를 반복하는 셸 스크립트를 작성할 수도 있습니다.


2
현재 이력은 메모리에 저장됩니다. 히스토리 파일은 사용 history -a하거나 유사하게 쓴 내용 또는 사용자가 쉘을 종료 한시기 만 표시합니다.
추후 공지가있을 때까지 일시 중지되었습니다.

2
이 답변에 제공된 파일 이름은 기본값 일뿐입니다. 각 사용자는 자신의 위치를 ​​설정할 수 있습니다 (Joy 's answer 참조). 사용자가 다른 쉘을 사용하는 경우 히스토리를 기본이 아닌 다른 위치 (예 : ~ / mybashhist, ~ / histories / ksh 등)에 저장할 수 있습니다. 또한 이와 같은 사용자 데이터를 엿보는 것은 법적인 영향을 미칠 수 있습니다.
DevSolar

3
echo $HISTFILE

그런 다음 해당 파일을보십시오.


1
이는 사용자 환경을 이전에 소싱 한 경우에만 작동합니다 ( HISTFILE다른 환경으로 설정했을 수 있음 ).
DevSolar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.