Debian

為什麼’logger’總是作為同一個使用者執行?

  • August 3, 2018

rsyslog 8.24在debian上使用。每次我觸發logger "some message"syslog 時都引用同一個且唯一的系統使用者 - 如果我切換使用者(即使是)也沒關係root,消息總是以同一個使用者記錄 - 即使在伺服器上 - 我猜是在桌面上,這是因為GUI 以該使用者身份在伺服器上執行,因為我以該使用者身份登錄,然後切換到root- 可能是這樣嗎?但無論如何,我如何記錄root有關係統日誌的消息?

因為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;
}

它返回“在程序的控制終端上登錄的使用者名”。即您的系統使用者。

引用自:https://unix.stackexchange.com/questions/460368