Синтаксис username
устарел в rsyslog. Вместо этого используйте :omusrmsg:username
.
Если это все еще не работает:
rsyslog использует файл /var/run/utmp
для поиска списка ttys пользователя; эмуляторы терминала должны добавить себя в этот файл, а для этого требуются достаточные привилегии (файл обычно не доступен для записи всем пользователям). Эмуляторы терминала на основе X11 отличаются от программ входа в систему тем, что они запускаются с привилегиями пользователя, а не пользователя root.
Используйте pinky
, finger
, w
или who
для просмотра содержимого utmp. Если они не перечисляют какие-либо записи "pts/X", принадлежащие псевдо-терминалам:
Сначала убедитесь, что /var/run/utmp
существует, принадлежит группе utmp
и доступна для записи этой группе. Если нет, запустите
# chown :utmp /var/run/utmp && chmod ug=rw,o=r /var/run/utmp
Затем проверьте, имеет ли ваш эмулятор терминала достаточно прав для записи в этот файл, а именно: бит setgid и правильное владение группой:
-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 Terminal использует отдельный инструмент gnome-pty-helper
для выполнения изменений utmp.
Если они отсутствуют, запустите:
# chown :utmp /usr/lib/vte/gnome-pty-helper \
&& chmod g+s /usr/lib/vte/gnome-pty-helper
Убедитесь, что rsyslogd
работает как учетная запись, которой разрешено писать в ttys пользователей. При необходимости добавьте его в группу tty
.
В некоторых дистрибутивах проверьте, разрешает ли политика SELinux или AppArmor обновления utmp.