또한이 변수들은 항상 현재 로그인 한 사용자 이름과 일치합니까 (데비안 시스템에서도)? 다른 유닉스 계열 시스템에서 사용할 수 있다고 가정 할 수 있습니까?
또한 whoami
이러한 변수 중 하나를 읽는 대신 왜 사용하는지 궁금 합니다.
USER
그리고 USERNAME
당신이 원한다면, 당신은 임의의 값으로 설정할 수 있습니다 수단 것이 보통 환경 변수입니다. 그냥 입력하십시오 USER=xyz
. 즉, 해당 변수가 존재하더라도 해당 값이 현재 로그인 한 사용자 이름과 일치한다고 보장 할 수 없습니다.
guarantee
, 기본적으로 의미합니다 (즉, 사용자가 변경하지 않았다고 가정).
sudo whoami
와sudo echo $USER
sudo echo $USER
쉘 팽창, $USER
, 다음 호출합니다 sudo
. 따라서 물론 동일한 출력을 생성하지 않습니다 whoami
. 마찬가지로 sudo whoami
, sudo sh -c 'echo $USER'
(일반적으로) 출력 않습니다 root
. 관련하여 대한 의견 whoami
EUID를 사용하여 , 참고 sudo whoami
출력 할 root
경우에도 whoami
UID를 사용합니다. 실행되는 명령에 대해 EUID와 UID를 모두sudo
설정 합니다 (특별히 다르게 동작하도록 명시 적으로 구성한 경우는 예외). 비교 sudo id -u
에 sudo id -ru
.
man
페이지를 보면whoami
유효 사용자 ID와 연관된 이름이보고됩니다. 이것은sudo
setuid 실행 파일을 사용 하거나 실행하는 경우 다른 것을 반환한다는 의미 입니다.sudo
설정 한 경우sudo whoami
예를 들어 보십시오 .