![wtmp를 반복하고 일부 데이터를 추출하는 방법은 무엇입니까?](https://linux55.com/image/216918/wtmp%EB%A5%BC%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%20%EC%9D%BC%EB%B6%80%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%B6%94%EC%B6%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
답변1
sudoer 사용자의 실제 이름을 얻고 싶기 때문에 이것을 사용하고 있습니다.
/etc/bashrc에 추가:
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
그리고 rsyslog.conf에서(로거 local6을 추가하여 /var/log/commads.log를 채웁니다(boot.log 아래에 추가).
sed -ie '/log\/boot.log/a local6.* /var/log/commands.log' /etc/rsyslog.conf
systemctl restart rsyslog
/var/log/command는 히스토리와 비슷하므로 awk를 사용하여 처리하여 필수 필드만 가져올 수 있습니다.