"로거"가 항상 동일한 사용자로 실행되는 이유는 무엇입니까?

"로거"가 항상 동일한 사용자로 실행되는 이유는 무엇입니까?

나는 데비안에서 그것을 사용하고 있습니다 rsyslog 8.24. syslog를 트리거할 때마다 logger "some message"동일하고 유일한 시스템 사용자가 참조됩니다. 사용자를 전환해도 상관없습니다. root메시지는 항상 동일한 사용자에게 기록됩니다. 서버에서도 마찬가지입니다. 데스크탑, 이는 내가 해당 사용자로 로그인한 다음 전환했기 때문에 해당 사용자로 GUI가 서버에서 실행되고 있기 때문입니다. root가능합니까? 그런데 root시스템 로그에 메시지를 어떻게 기록할 수 있나요?

답변1

logger사용 으로 인해 getlogin(3).

https://github.com/karelzak/util-linux/blob/master/misc-utils/logger.c#L379

static char const *xgetlogin(void)
{
    char const *cp;
    struct passwd *pw;

    if (!(cp = getlogin()) || !*cp)
        cp = (pw = getpwuid(geteuid()))? pw->pw_name : "<someone>";
    return cp;
}

"프로세스 제어 터미널에 로그인한 사용자의 이름"을 반환합니다. 그것은 당신의 시스템 사용자입니다.

관련 정보