Запустите команду стены от имени другого пользователя RHEL8

нужно выбрать интерфейс в транспорте

например, выбрать случайным образом:

  transport = ${listextract{${eval:1+${randint:2}}}{<;1.1.1.1;1.1.1.2}}
0
08.01.2021, 20:37
1 ответ

wallиспользует getloginдля получения имени пользователя для сообщения и возвращается к getpwuidтолько в случае сбоя вызова getlogin(см. здесь).

getloginвозвращает имя пользователя, вошедшего в систему на управляющем терминале процесса(из справочной страницы getloginsuзапускает оболочку только с идентификатором пользователя и группы 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в системе, которая работает:-)

0
18.03.2021, 22:37

Теги

Похожие вопросы