사용되는 값은 여기에 정의 된 각 사용자의 홈 디렉토리에 대한 ~
관리 데이터베이스 ( getent passwd
) (일반적으로 /etc/passwd
파일 ) 에서 얻는 값에서 결정됩니다 .
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
sam:x:500:500:Sam Mingolelli:/home/sam:/bin/bash
tracy:x:501:501::/home/tracy:/bin/bash
이 파일의 6 번째 열은 누군가 입력 할 때 사용되는 값 cd ~
입니다.
nsswitch
다음 명령을 사용하여 시스템이 사용자의 홈 디렉토리에 사용하는 것을 볼 수 있습니다 getent passwd
.
$ getent passwd
root:x:0:0:root:/root:/bin/bash
sam:x:500:500:Sam Mingolelli:/home/sam:/bin/bash
tracy:x:501:501::/home/tracy:/bin/bash
이를 제공하는 "데이터베이스"는에 정의 된 시스템 확인자를 통해 제어됩니다 /etc/nsswitch.conf
.
$ grep passwd /etc/nsswitch.conf
#passwd: db files nisplus nis
passwd: files
위의 파일은을 의미 /etc/passwd
하지만 "데이터베이스"는 예를 들어 LDAP, NIS 또는 네트워크의 다른 위치에서 올 수 있습니다.
이동 / 정의?
계정을 만든 후이 작업을 수행하는 것은 약간 까다 롭습니다. 처음부터 계정을 작성하는 경우 사용자의 홈 디렉토리 위치를 재정의하는 것은 쉽지 않습니다. useradd
명령을 실행할 때 사용자의 홈 디렉토리에 사용될 위치를 지정할 수 있습니다.
예
$ useradd -d /ext1/acheong ...
매뉴얼 페이지에서 발췌
-d, --home HOME_DIR
The new user will be created using HOME_DIR as the value for the user’s
login directory. The default is to append the LOGIN name to BASE_DIR and
use that as the login directory name. The directory HOME_DIR does not
have to exist but will not be created if it is missing.
기존 계정의 경우
종종 사용자 홈 디렉토리의 경로가 구성 파일에 정적으로 포함되어 더 까다로워지기 때문에 이것은 외과 수술의 일이되었습니다.
예
$ grep home /home/sam/.*
/home/sam/.gtkrc-1.2-gnome2:include "/home/sam/.gtkrc.mine"
이 문제는 해결되거나 /home/sam
새로운 위치 로 연결되는 링크를 제공해야합니다 /ext1/sam
.
"데이터베이스"가 아닌 경우 이동 /etc/passwd
시스템이 LDAP, NIS 등에서 홈 디렉토리를 가져 오는 경우 해당 시스템에서 재배치를 수행하고 파일을에서 /home/sam
로 이동하는 작업을 조정 해야 /ext1/sam
합니다.
참고 문헌
~
가 아닌 다른 쉘로 셸을 확장 하시겠습니까?