다른 사용자의 환경변수를 볼 수 있는 방법이 있나요? 저는 이 작업을 루트로 수행하고 싶기 때문에 권한은 문제가 되지 않을 것 같습니다.
사용자 본인의 경우 echo $PATH
or set | grep PATH
(또는 set
변수 이름이 기억나지 않을 때)를 사용합니다. 다른 사용자에게 유사한 명령은 무엇입니까?
어쨌든 저는 Ubuntu Server 13.04를 사용하고 있습니다.
답변1
또 다른 옵션은 다음을 env
사용하여 이 명령을 실행하는 것입니다 .root
sudo
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'