6 votos

¿Cómo puedo obtener el nombre completo del usuario actualmente conectado a través de la Terminal cuando se ejecuta como Root?

Este comando funciona muy bien para listar el nombre completo:

finger $(whoami) | egrep -o 'Name: [a-zA-Z0-9 ]{1,}' | cut -d ':' -f 2 | xargs echo

Pero, si lo ejecuta después de un

sudo su

Devuelve el administrador del sistema root de CVMS

Me pregunto si tal vez hay otro lugar para leer la variable Nombre completo? ¿Existe un objeto de usuario en algún lugar que pueda listar esto? Pensé que estaba en algo con

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'

Pero no parece que el nombre completo esté representado en esos datos de retorno.

4voto

klanomath Puntos 19587

Simplemente utilice id -P $(stat -f%Su /dev/console) | awk -F '[:]' '{print $8}'

id -P $(stat -f%Su /dev/console) rendimientos:

adminuser:********:501:20::0:0:AdminUser:/Users/adminuser:/bin/bash

awk -F '[:]' '{print $8}' produce el octavo término (el "RealName") de una salida separada por dos puntos.

Como propone fd0 se puede utilizar alternativamente:

id -P $(stat -f%Su /dev/console) | cut -d : -f 8

que es aún más simple/elegante.

2voto

siva Puntos 23

Puede utilizar dscl para leer el RealName:

$ dscl . -read /Users/grgarside RealName
RealName:
 George Garside

Lo siguiente le dará justo lo que busca. Esto utiliza 'who am i' para obtener el nombre de usuario, y luego sed para formatear la salida.

$ dscl . -read "/Users/$(who am i | awk '{print $1}')" RealName | sed -n 's/^ //g;2p'
George Garside

2voto

Joodoo Puntos 28

Necesitaba un enfoque de dos líneas:

username="$(stat -f%Su /dev/console)"
realname="$(dscl . -read /Users/$username RealName | cut -d: -f2 | sed -e 's/^[ \t]*//' | grep -v "^$")"

Y entonces puedes hacer un eco de la variable realname.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X