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 wall
usa 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 getlogin
pá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.)