нужно выбрать интерфейс в транспорте
например, выбрать случайным образом:
transport = ${listextract{${eval:1+${randint:2}}}{<;1.1.1.1;1.1.1.2}}
wall
использует getlogin
для получения имени пользователя для сообщения и возвращается к getpwuid
только в случае сбоя вызова getlogin
(см. здесь).
getlogin
возвращает имя пользователя, вошедшего в систему на управляющем терминале процесса(из справочной страницы getlogin)и su
запускает оболочку только с идентификатором пользователя и группы 0 и даже с su -
это не «оболочка входа в систему», поэтому она не меняет результатgetlogin
:Запустите оболочку как оболочку входа в среду, аналогичную реальному входу в систему(из su manpage).
getpwuid(getuid())
на самом деле возвращает «правильного» пользователя, но вызывается только в случае сбоя вызова getlogin
.
Таким образом, чтобы получить wall
«от root», вам действительно нужно войти в систему как root на TTY. Вы также должны иметь возможность войти в систему с помощью команды login
, но, похоже, это не работает для меня с терминала в Fedora.
Изменить :Не уверен, что не так в моей Fedora, login
работает как положено на виртуальной машине Ubuntu:
vtrefny@ubuntu:~$ sudo login
ubuntu login: root
Password:
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-58-generic x86_64)
...
root@ubuntu:~# wall "aaaa"
Broadcast message from root@ubuntu (pts/0) (Fri Jan 8 21:57:39 2021):
aaaa
Таким образом, ответ заключается в использовании login
в системе, которая работает:-)