¿Cómo envío un mensaje en el muro como root (o cualquier otro usuario) y no identifica al usuario original?
Mirando lo siguiente, hubiera esperado que el muro mostrara un mensajedesde la raízpero todavía se muestraadministrador1, ¿Qué me estoy perdiendo?
Probé varios sudo -i, -s, usando -c para enviar el comando, tmux, runuser pero siempre obtuve el mismo resultado. ¿Es una configuración global en sudoers o algo más?
Para ponerlo en contexto, ¡esta fue una pregunta de una prueba que no pude descifrar y no me dieron una respuesta!
[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
Respuesta1
Esto se debe a que wall
se utiliza getlogin()
para encontrar el nombre del usuario.
if (!(whom = getlogin()) || !*whom)
whom = (pw = getpwuid(getuid())) ? pw->pw_name : "???";
if (!whom) {
whom = "someone";
warn(_("cannot get passwd uid"));
}
Y luego:
snprintf(lbuf, line_max,
_("Broadcast message from %s@%s (%s) (%s):"),
whom, hostname, where, date);
Desde la getlogin
página de manual:
getlogin() devuelve un puntero a una cadena que contiene el nombre del usuario que inició sesión en la terminal de control del proceso, o un puntero NULL si esta información no se puede determinar.
...
Estas funciones permiten que su programa identifique positivamente al usuario que está ejecutando (cuserid()) o al usuario que inició sesión (getlogin()). (Estos pueden diferir cuando se trata de programas de configuración de ID de usuario).