Como executar o comando wall como outro usuário no Linux (RHEL8)

Como executar o comando wall como outro usuário no Linux (RHEL8)

Como envio uma mensagem no mural como root (ou qualquer outro usuário) e ela não identifica o usuário original?

Olhando abaixo, eu esperava que a parede exibisse uma mensagemda raizmas ainda mostraadministrador1, o que estou perdendo?

Eu tentei vários sudo -i, -s, usando -c para enviar comando, tmux, runuser, mas sempre o mesmo resultado. É um cenário global em sudoers ou algo mais?

Para contextualizar, esta foi uma pergunta de um teste que não consegui descobrir e não recebi uma resposta!

[admin1@RHELPOC ~]$ sudo su -
[root@RHELPOC ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@RHELPOC ~]# wall "whoisthis"

Broadcast message from admin1@RHELPOC (pts/0) (Fri Jan  8 13:58:40 2021):
whoisthis

Responder1

Isso ocorre porque wallusa getlogin()para encontrar o nome do usuário.

if (!(whom = getlogin()) || !*whom)
            whom = (pw = getpwuid(getuid())) ? pw->pw_name : "???";
        if (!whom) {
            whom = "someone";
            warn(_("cannot get passwd uid"));
        }

E então:

snprintf(lbuf, line_max,
                _("Broadcast message from %s@%s (%s) (%s):"),
                whom, hostname, where, date);

Na getloginpágina de manual:

getlogin() retorna um ponteiro para uma string contendo o nome do usuário logado no terminal de controle do processo, ou um ponteiro NULL se esta informação não puder ser determinada.

...

Essas funções permitem que seu programa identifique positivamente o usuário que está executando (cuserid()) ou o usuário que efetuou login nesta sessão (getlogin()). (Eles podem ser diferentes quando programas de definição de ID de usuário estão envolvidos.)

informação relacionada