user_a
사용자 환경 변수에서 다음을 설정했습니다 .profile
.
export NODE_ENV=dev
사용자로 로그인하고 bash 쉘을 시작하면 환경 변수가 올바르게 설정됩니다. 이렇게 하면 예상대로 인쇄 echo $NODE_ENV
됩니다 .dev
다른 사용자로 로그인한 user_b
다음 user_a
make 명령을 통해 sudo su user_a
환경 변수가 설정되지 않습니다.
환경 변수가 NODE_ENV
설정되었는지 확인하는 방법은 무엇입니까?
답변1
명령을 실행하면 su user
전체 프로필을 로드하지 않고 해당 사용자로 전환됩니다. $HOME
, $SHELL
및 변수 만 $USER
로드됩니다. $LOGNAME
사용자로 전환할 때 사용자의 전체 프로필을 로드하려면 --login
이 플래그를 사용하여 해당 사용자로 로그인했음을 지정해야 합니다. 이 플래그에 대한 단축키는 -
su 뒤의 대시( )이므로 명령은 다음과 같습니다 su - user
.
답변2
env_keep += "NODE_ENV"
에 다음과 같이 추가 하는 것이 좋습니다 /etc/sudoers.d/
.
sudo -i
문제가 발생할 경우를 대비해 루트 셸을 실행하세요 (한 번 실수를 했고 고치는 것이 정말 귀찮았습니다).- 별도의 쉘에서 다음을 실행하십시오.
sudo visudo -f /etc/sudoers.d/envkeep
- 이 파일에 다음을 추가하세요.
Defaults env_keep += "NODE_ENV"
- 저장하고 종료한 후 다시 시도하세요
sudo -i
. 작동해야 하며NODE_ENV
저장해야 하는 쉘 에 넣어야 합니다 .