为什么“logger”总是以同一用户身份执行?

为什么“logger”总是以同一用户身份执行?

我在 debian 上使用rsyslog 8.24。每次我触发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;
}

它返回“在进程的控制终端上登录的用户名”。即您的系统用户。

相关内容