Vagrant box를 설정하고 있는데 이상한 점을 발견했습니다.
root@box:~# sudo --user=vagrant bash
bash: /root/.bashrc: Permission denied
vagrant@box:~$ export
declare -x HOME="/root"
왜 여기에 HOME
설정되어 있습니까 /root
? 사용자 vagrant의 홈 디렉토리는 다음과 같습니다 /root
.
vagrant@box:~$ grep vagrant /etc/passwd
vagrant:x:1000:1000::/home/vagrant:/bin/bash
온라인에서 찾은 모든 내용은 환경 변수를 방지하는 방법이 아니라 환경 변수를 상속하는 방법에 대해 설명합니다. sudoers 파일에는 env_reset
기본값이 포함되어 있습니다. 이 행동을 제어하는 다른 것이 무엇인지 모르겠습니다.
답변1
이것은 선택입니다. 마음에 들지 않으면 -i
또는 -H
옵션을 사용하거나 구성을 변경하세요. sudo(8) 매뉴얼 페이지에는 다음과 같이 나와 있습니다 HOME
.
또는 이 지정되거나
-i
에서 또는 이 지정되고 이 옵션이 설정된 경우 대상 사용자의 홈 디렉터리로 설정됩니다.-H
env_reset
always_set_home
sudoers
-s
set_home
sudoers
env_reset
Ubuntu에서는 실제로 효과가 없습니다 $HOME
(그러나 아래 참조). 이는 매뉴얼 페이지의 부정확성입니다. 바라보다런치패드 버그 #889936.
추가 정보
env_reset
일부 환경 변수는 제공될 때 여전히 유지될 수 있습니다. 옵션을 사용하여 변경할 수 있는 컴파일 시간 기본값이 있습니다 env_keep
. 자세한 내용은 sudoers(5) 매뉴얼 페이지를 참조하십시오. sudo -V
루트 아래 출력 의 "보존할 환경 변수:"에서 이러한 환경 변수 목록을 볼 수 있습니다. 특히 HOME
Ubuntu에는 기본적으로 나열되어 있지만 Debian에는 나열되어 있지 않습니다.
자세한 내용은 다음을 참조하세요.
$HOME을 변경하지 않도록 Ubuntu에서 sudo를 어떻게 설정하고 이 동작을 비활성화하려면 어떻게 해야 합니까?
런치패드 버그 #760140
HOME
Debian 및 Ubuntu의 컴파일 시간 기본값 정보.