새로 생성된 사용자의 $HOME 환경 변수가 올바르지 않습니다.

새로 생성된 사용자의 $HOME 환경 변수가 올바르지 않습니다.

내 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

sudoHOME신규 사용자에 대해 변수가 반드시 업데이트되는 것은 아닙니다 . 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.

관련 정보