다른 사용자의 환경 변수 가져오기 [닫기]

다른 사용자의 환경 변수 가져오기 [닫기]

다른 사용자의 환경변수를 볼 수 있는 방법이 있나요? 저는 이 작업을 루트로 수행하고 싶기 때문에 권한은 문제가 되지 않을 것 같습니다.

사용자 본인의 경우 echo $PATHor set | grep PATH(또는 set변수 이름이 기억나지 않을 때)를 사용합니다. 다른 사용자에게 유사한 명령은 무엇입니까?

어쨌든 저는 Ubuntu Server 13.04를 사용하고 있습니다.

답변1

또 다른 옵션은 다음을 env사용하여 이 명령을 실행하는 것입니다 .rootsudo

sudo -Hiu $user env | grep $var

예를 들어

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

답변2

사용자의 경우 다음을 수행할 수 있습니다.

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

@camillestaps

. ~/.profile이것은 제가 가장 좋아하는 사람 중 한 명인 Peteris Krumins에게서 배운 비법입니다. 그 기술을 설명해준다.여기. 아마도 최신 bash 버전에는 옵션으로 빌드가 있을 수 있습니다 NON_INTERACTIVE_LOGIN_SHELLS.

답변3

루트에서 su -사용자로 이동한 다음 보려는 환경 변수를 grep할 수 있습니다.

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

관련 정보