rsyslogd:如何向用户伪控制台发送消息

rsyslogd:如何向用户伪控制台发送消息

我这样设置了我的 rsyslogd.conf 设置:

auth,authpriv.*                 username

但用户名没有收到消息(在(所有)伪终端中,即 Gnome 终端)。我的问题与此相关:

  1. 用户应该看到这些消息吗?如果是,那么用户没有收到消息的原因可能是什么。
  2. 如果没有,可以这样做吗?

答案1

username语法在 rsyslog 中已弃用。请改用。:omusrmsg:username

如果仍然不起作用:

rsyslog 使用该/var/run/utmp文件来查找用户 tty 列表;终端仿真器必须将自己添加到该文件中,这需要足够的权限(该文件通常不是基于 X11 的终端仿真器 (也称为全球可写) 与系统登录程序不同,它们以用户权限而不是 root 权限启动。

使用pinkyfingerwwho列出内容韓國. 如果它们没有列出任何属于伪终端的“pts/X”条目:

  1. 首先确保/var/run/utmp存在、由该组拥有utmp并且可由该组写入。如果不存在,请运行

    # chown :utmp /var/run/utmp && chmod ug=rw,o=r /var/run/utmp
    
  2. 然后检查你的终端仿真器是否有足够的权限写入该文件——即设置组ID位和正确的组所有权:

    -rwxr-sr-x 1 root utmp 1.3M May 25  2012 /usr/bin/urxvt
    -rwxr-sr-x 1 root utmp 475K Nov 26 16:54 /usr/bin/xterm
    -rwxr-sr-x 1 root utmp  15K Nov 13 00:36 /usr/lib/vte/gnome-pty-helper
    

    注意:GNOME 终端使用单独的gnome-pty-helper工具来执行 utmp 更改。

    如果缺少任何内容,请运行:

    # chown :utmp /usr/lib/vte/gnome-pty-helper \
        && chmod g+s /usr/lib/vte/gnome-pty-helper
    
  3. 确保rsyslogd以允许写入用户 tty 的帐户运行。如有必要,将其添加到tty组。

  4. 在某些发行版中,检查 SELinux 或 AppArmor 策略是否允许 utmp 更新。

相关内容