서비스를 다시 시작한 사용자 세부 정보 기록

서비스를 다시 시작한 사용자 세부 정보 기록

이것은 얼마 전 내가 던진 질문과 관련이 있다.

Linux에서 특정 서비스를 다시 시작한 사람에 대한 세부 정보를 기록하고 싶습니다.

예를 들어:

사용자 X가 Apache를 다시 시작하면 사용자 이름, 시간, 서비스(예: Apache) 및 상태(성공/실패)가 기록됩니다.

이 작업을 수행하려면 작은 스크립트를 작성하고 이를 서비스 시작 스크립트에 수동으로 추가하면 됩니다.

하지만 수천 개의 서버와 수십 개의 서비스가 있기 때문에 이것은 불가능합니다.

서비스 시작 스크립트를 조작하지 않고 이를 수행할 수 있는 다른 방법이 있습니까?

답변1

시스템을 잠그는 것이 좋습니다. 사용자에게 를 사용하도록 요구하고 sudo, 를 사용하여 특정 명령만 실행되도록 허용하고 , 및 sudo같은 명령을 금지하여 임의 명령 실행을 허용하지 않습니다 .sudo susudo bash

sudo물론 서비스 다시 시작을 포함하여 이를 통해 실행된 모든 명령을 기록합니다. 내 컴퓨터에서는 에 로그인하는데 /var/log/secure, 이는 에서만 읽을 수 있습니다 root.

그러나 그것은 당신이 원했던 마지막 것, 즉 성공이나 실패를 제공하지 않습니다. 그러나 서비스를 직접 시작하는 대신 사용자가 사용하도록 요구할 수 있는 래퍼 스크립트를 사용하여 추가 로깅을 쉽게 구현할 수 있습니다. 래퍼 스크립트를 안전하게 만드는 데 주의하세요!

따라서 사용자는 다음을 입력합니다.

sudo wrapper_script start service

또는 그런 것.

sudo 로그에 유의하세요.둘 다원래 사용자와 sudo 중인 사용자(기본적으로 루트).

관련 정보