su 또는 sudo 특정 환경 변수 유지/제거

su 또는 sudo 특정 환경 변수 유지/제거

다른 사용자로 로그인하여 내 환경의 대부분(전부는 아님)을 유지하고 싶습니다. 특히 $HOME신규 사용자에 대해서는 올바른 값을 설정하고 나머지는 그대로 유지하고 싶습니다. 내가 사용 sudo -E하면 거의 작동 합니다$HOMEsudo -E su$ZDOTDIR

편리한 솔루션이나 몇 가지 변수 중 하나가 지워지 sudo -E su는 이유를 아는 사람이 있습니까 $ZDOTDIR? 감사해요.

답변1

sudoers 설정은 운영 체제마다 다르기 때문에 어떤 것이 적합한지 예측하기 어렵습니다.

sudo -EHH 스위치는 $HOME을 대상 사용자의 값으로 설정하려고 시도하지만 $ZDOTDIR은 유지되지 않습니다.

또는 visudo를 사용하여 sudoers 끝에 다음 줄을 추가합니다. 이는 sudo가 현재 환경에 나열된 변수를 유지하도록 지시합니다. 이 경우 sudo스위치를 사용하지 않고도 사용할 수 있습니다.

Defaults        env_keep += "ZDOTDIR OTHERVAR1 OTHERVAR2 [...]"

관련 정보