로그 이름과 $LOGNAME의 차이점

로그 이름과 $LOGNAME의 차이점

환경 변수에 대해 읽는 동안 제가 발견한 것은 LOGNAME이 변수와 명령에 의해 반환되는 것의 logname차이점을 알고 싶다는 것입니다. 왜냐하면 반환되는 것이 실제로 다르기 때문입니다.

-bash-3.2$ logname
user11
-bash-3.2$ echo $LOGNAME
user1

하지만 whoami동일한 사용자가 반환됩니다.LOGNAME

-bash-3.2$ whoami
user1

답변1

lognametty(에서 읽어서 /var/run/utmp) 소유 사용자를 키우고 , 반면은 $LOGNAME현재 셸 프로세스가 실행 중인 사용자를 포함하는 환경 변수입니다. 다음 명령을 사용하여 이를 쉽게 확인할 수 있습니다.

# ssh guido@localhost
# whoami
guido
# w
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
guido    pts/3    localhost        13:02    0.00s  0.12s  0.03s sshd: guido [priv]
# echo $LOGNAME
guido
# sudo su
$ whoami
root
$ echo $LOGNAME
root
$ logname
guido
$ ps aux | grep bash
root      1145  0.5  0.1 110176  3604 pts/3    S    13:11   0:00 bash
root      1161  0.0  0.0 103304   844 pts/3    S+   13:11   0:00 grep bash
guido    28363  0.0  0.1 110048  3516 pts/3    Ss   13:02   0:00 -bash

관련 정보