내 Ubuntu 컴퓨터에서 "olduser"로 로그인하고 다음을 사용하여 "newuser"를 만들었습니다.
adduser --system --home /usr/share/newuser --no-create-home --ingroup newgroup --disabled-password --shell /bin/false newuser
그러면 새 줄이 추가됩니다.
newuser:x:104:1001::/usr/share/newuser:/bin/false
내 /etc/passwd
파일에. 그러나 "newuser"(머신에 sshing하거나 shell에서 newuser
실행 sudo -u newuser bash
)로 시스템에 로그인하면 내 홈 디렉토리가 /home/olduser
.
echo $HOME
주어진
/home/olduser
위에서 언급한 동일한 명령은 Debian 시스템에서는 예상대로 작동하지만 Ubuntu 시스템에서는 작동하지 않습니다.
왜 이런 일이 발생합니까?
명령을 사용하여 홈 디렉토리를 변경해 보았습니다.
usermod -m -d /usr/share/newuser newuser
이것도 도움이 되지 않습니다.
답변1
sudo
HOME
신규 사용자에 대해 변수가 반드시 업데이트되는 것은 아닙니다 . HOME
업데이트 하려면 -H
또는 -i
옵션을 사용하세요. 예를 들어:
sudo -Hu newuser bash
또는 /etc/sudoers
파일 에 다음 줄을 추가하여 기타 관련 변수를 sudo
자동으로 업데이트 할 수 있습니다.HOME
Defaults env_reset
많은 배포판에는 이미 이 설정이 env_reset
기본 설정으로 되어 있습니다.
문서
man sudo
환경 변수를 설명하는 섹션에서:
-i 또는 -H를 지정하거나 sudoers에 env_reset 또는 Always_set_home을 설정하거나, sudoers에 -s 옵션을 지정하고 set_home을 설정하면 HOME이 대상 사용자의 홈 디렉터리로 설정됩니다.
당신은 또한 볼 수 있습니다 man sudoers
.