다른 사용자의 환경 변수 가져 오기 질문을 명확하게 설명 하려면

다른 사용자의 환경 변수를 볼 수있는 방법이 있습니까? 루트로 그렇게하고 싶습니다. 그래서 권한은 문제가되지 않습니다.

사용자 자신을 위해 echo $PATH또는 set | grep PATH(또는 set변수 이름을 기억하지 못하는 경우)을 사용합니다. 다른 사용자에게 유사한 지침은 무엇입니까?

가치가있는 것은 Ubuntu Server 13.04입니다.



답변

다른 옵션은을 사용하는 것 env입니다. 이것을 다음과 같이 실행하십시오 root.

sudo -Hiu $user env | grep $var

예를 들어

sudo -Hiu terdon env | grep HOME
HOME=/home/terdon

답변

한 사용자의 경우 다음과 같이 할 수 있습니다.

su - <username> -c '. ~/.profile; echo $PATH'

모든 사용자의 $ PATH를 나열하십시오.

for user in $(cat /etc/passwd | awk -F: '{print $1}'); do
  su - $user -c '. ~/.profile; printf "%s\n" "$PATH"'
done

@Camil Staps

. ~/.profile내가 좋아하는 사람, Peteris Krumins에게서 배우는 속임수입니다. 그는 여기 트릭을 설명했다 . 어쩌면 나중에 bash 버전은 option으로 빌드되었을 것 NON_INTERACTIVE_LOGIN_SHELLS입니다.


답변

루트 su -에서 사용자에게 할 수 있고 보려는 환경 변수를 grep하십시오.

su - <username> -c 'echo $PATH'