¿Por qué cuando cambio de usuario su <username>y luego ejecuto who am isale el usuario anterior en el que estaba conectado y no al que he cambiado?
9
Probablemente estés ejecutando el comando incorrecto.
whoestá destinado a mostrar quién ha iniciado sesión, es decir, qué usuario posee el terminal. Devuelve una línea como esta:
ckhan pts/1 2012-11-05 03:06 (c-21-13-25-10.ddw.ca.isp.net)
whoamies para mostrarle cuál es la identificación de usuario efectiva de la persona que lo ejecuta. Devuelve un solo nombre, como este (y es equivalente a la ejecución id -un):
ckhan
Creo que puede haber escrito literalmente who am ien la terminal, que se ejecutó whocon dos argumentos ignorados ( am, i).
Ver man whoy man whoamipara más detalles.
amyino se ignoran, incluso están especificados por POSIX: "En la configuración regional POSIX, limite la salida para describir al usuario que invoca, equivalente a la-mopción".Según mi página de manual de Ubuntu 12.04.2 para el comando 'who', 'who am i' (o who con cualquiera de los dos argumentos) es lo mismo que 'who -m' y debería darle el nombre de host y el usuario asociados con STDIN. Sin embargo, no obtengo salida con 'who am i'. O la página del manual es incorrecta o el comando tiene un error. Independientemente, como respondió previamente ckhan, el comando 'whoami' le dará el nombre de usuario para su identificación de usuario efectiva. Al menos en Ubuntu 12.04.2, ninguno de id, 'who am i' o 'whoami' le dará solo el nombre de usuario de la persona que inició sesión en el terminal actual. Como solución alternativa, puede obtener eso con:
fuente
Solución alternativa :
que funciona como reemplazo de
who am i | awk '{print $1}'. Explicación a continuación:En muchos sistemas "
who am i" es equivalente a "who -m". ¡El problema aquí es que con algunos terminales , "who -m" no devuelve nada!Ejemplo # 1 ejecutado desde un terminal xfce4
pero Ejemplo # 2 desde un terminal gnome (misma computadora, mismos comandos)
Esto parece ser una consecuencia de que gnome-terminal no agrega entradas utmp ...
fuente
statlugar:stat -c '%U' "$(tty)"probablemente tampoco debería analizarwho am i, ya que los nombres de usuario pueden contener espacios en algunos casos raros.