manifestor Asked: 2018-08-04 07:57:15 +0800 CST2018-08-04 07:57:15 +0800 CST 2018-08-04 07:57:15 +0800 CST 为什么'logger'总是作为同一个用户执行? 772 我rsyslog 8.24在debian上使用。每次我触发logger "some message"syslog 时都引用同一个且唯一的系统用户 - 如果我切换用户(即使是)也没关系root,消息总是以同一个用户记录 - 即使在服务器上 - 我猜是在桌面上,这是因为GUI 以该用户身份在服务器上运行,因为我以该用户身份登录,然后切换到root- 可能是这样吗?但无论如何,我如何记录root有关系统日志的消息? debian syslog 1 个回答 Voted Best Answer steve 2018-08-04T08:30:00+08:002018-08-04T08:30:00+08:00 因为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; } 它返回“在进程的控制终端上登录的用户名”。即您的系统用户。
因为
logger
使用getlogin(3)
.https://github.com/karelzak/util-linux/blob/master/misc-utils/logger.c#L379
它返回“在进程的控制终端上登录的用户名”。即您的系统用户。