![sudo -H가 HOME 변수를 설정하지 않는 이유는 무엇입니까?](https://linux55.com/image/127708/sudo%20-H%EA%B0%80%20HOME%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%84%A4%EC%A0%95%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
방금 Manjaro(Arch Linux 기반)를 사용하기 시작했는데 재미있는 일이 발생했습니다.
$ sudo env | grep HOME
HOME=/root
$ sudo -H env | grep HOME
HOME=/root
매뉴얼 페이지를 보고 sudo
내 홈 디렉토리가 실제로 에 있는지 확인했습니다 /etc/passwd
. 제가 이해한 바에 따르면 위의 두 번째 명령의 출력은 다음과 같습니다.~해야 한다예 /home/laurence
. 내가 무엇을 놓치고 있나요?
답변1
매뉴얼 페이지는 다음과 sudo
같이 씁니다.
-H, --set-home
보안 정책이HOME
환경 변수를 대상 사용자의 비밀번호 데이터베이스 항목에 지정된 홈 디렉토리로 설정하도록 요청합니다. 정책에 따라 이는 기본 동작일 수 있습니다.
여기서 핵심은 -H
설정하는 것 입니다.타겟 사용자메인 디렉토리. 호출하면 sudo env
대상 사용자가 유추됩니다 root
. (비슷한 것을 사용하면 sudo -u john -H env
홈 디렉토리를 얻게 됩니다 john
.)