2016-11-29 1 views
1

저는 자주 사용하는 IP 주소를 가지고 있으므로 우분투를 설치 한 환경 변수로 설정하려고했습니다. 나는/etc/environment 파일을 편집하고 api 토큰과 IP 주소를 몇 줄 추가했습니다. 그것은 다음과 같습니다우분투 버그? 환경 변수는 루트로 로깅 한 후에 만 ​​

PATH="some/paths" 
TOKEN="my:token" 
ZRUS="my.ip.address" 

을 이제 내가 이론적으로 ssh $ZRUS을 할 것이다 IP 액세스하려는 경우. 그러나 작동하지 않습니다. 나는 echo $ZRUS을 수행하고 빈 줄을 얻었으므로 printenv을 수행하고 모든 환경 변수 목록을 얻었고 거기에 내 IP가 표시되지 않습니다. 나는 그 때 su root을하고 나는 printenv를 다시하고 나는 동일한 명부 플러스 IP 주소 및 토큰을 얻는다. 그러면 su myuser을 수행하고 echo $ZRUS을하고 마술처럼 IP가 작동합니다.

이제 글로벌 사용자 환경 변수를 로컬 사용자로 가져 오기 위해 루트로 로그인해야하는 이유가 궁금합니다. 루트가 세션에 참석했는지 여부에 따라 범위가 달라지는 것처럼 보입니다. 이상하게 보입니다.

여러분들이이 버그 또는 기능이라고 생각합니까? 어떻게 이것을 극복하겠습니까?

+0

나는 변수는'shell'으로 확장되지 않습니다 생각을 다시 읽습니다. 특별히'/ etc/environment'에 추가하거나 새로운'shell '이 생성 될 때마다 소스 인'/ etc/profile'을 사용하고자합니다. – Inian

+0

환경 변수를 정의하는 대신'/ etc/hosts' 또는'.ssh/config' 파일에 새 항목을 추가하는 것을 고려할 수 있습니다. – chepner

답변

1

활성 파일 /etc/environment에 설정된 환경 변수는 활성 쉘 source /etc/environment으로 읽거나 logout/login (활성 파일로 환경 파일을 다시 읽음)을 적용한 경우에만 적용됩니다.

su myuser의 행위는 기본적으로 현재 사용자에 대한 새로운 쉘 생성 된 환경 파일

+0

아,이 말이 맞습니다. 컴퓨터를 다시 켠 후에 내일 다시 시도하겠습니다. 감사! – Besto

관련 문제