사용자의 기본 홈 디렉토리를 변경하는 명령


202

파일 을 건드리지 않고 Linux / Unix에서 사용자 홈 디렉토리를 변경하는 간단한 쉘 명령 ( 기존 유효한 사용자의 기본 로그인 쉘을 변경하는 chsh 와 유사한 것)이 있는지 알고 싶습니다 /etc/passwd. 감사


/etc/passwd파일 을 터치하고 싶지 않습니까? 당신은해야합니다!
Basile Starynkevitch

11
stackoverflow.com/questions/20071714/... , 말한다 usermod -d /home/userxx /home/useryy변화에 리눅스 기본 로그인 디렉토리에 / 홈 / useryy
이브라힘 Quraish

2
기본 홈 디렉토리 에 대해 묻는 이유는 무엇 입니까? 하나의 특정 기존 사용자 또는 나중에 추가 된 모든 사용자의 홈 디렉토리를 변경 하시겠습니까? 공지 사항 chsh변경하지 않는 기본 변화에 ... 로그인 쉘을하지만, 특정 사용자의 바로 로그인 쉘 HOME특정 사용자의 바로 편집/etc/passwd
실레 Starynkevitch

답변:


350

다른 답변에 대한 Ibrahim의 의견은 기존 사용자의 홈 디렉토리를 변경하는 올바른 방법입니다.

사용자의 홈 디렉토리를 변경하십시오.

usermod -d /newhome/username username

usermod기존 사용자를 편집하는 명령입니다.
-d(의 약어 --home)는 사용자의 홈 디렉토리를 변경합니다.

사용자의 홈 디렉토리 변경 + 사용자의 현재 디렉토리 내용을 이동하십시오.

usermod -m -d /newhome/username username

-m(의 약어 --move-home)는 콘텐츠를 사용자의 현재 디렉토리에서 새 디렉토리로 이동합니다.


1
내용을 이동시킬뿐만 아니라 전체 폴더 이동 = 원래 폴더 ( /home/username일반적으로)가 제거되는 것처럼 보입니다 .
Betlista

2
@STW이 작업은 되돌릴 수 있습니까? 한 번만 실행 한 다음 매개 변수를 뒤집 으면 홈 디렉토리가 이전과 똑같습니까?
DanGordon

1
@DanGordon 당신이 /newhome/username인수에 넣은 것은 사용자의 홈 디렉토리가 될 것입니다. 그것이 무엇인지 아는 경우 이전 홈 디렉토리로 다시 설정할 수 있지만 "실행 취소"옵션은 없습니다.
STW

3
두 번째 명령의 옵션 순서가 잘못되었습니다. usermod -m -d /newhome/username username공장.
Snozzlebert

@Dominik에게 감사드립니다-OS (Mac vs Linux vs BSD 등)에 따라 다를 가능성이 있습니다. 물론 틀릴 ​​수도 있습니다
STW

28

에서 리눅스 변경 기본 사용자 홈 디렉토리 새로운 사용자를 추가하는 동안 :

텍스트 편집기를 사용하여이 파일을 열기 만하면됩니다.

vi /etc/default/useradd

HOME 변수로 정의 된 기본 홈 디렉토리는 다음과 같은 행을 찾으십시오.

HOME=/home

다음으로 교체하십시오.

HOME=/iscsi/user

파일을 저장하고 닫습니다. 이제 일반 useradd 명령을 사용하여 사용자를 추가 할 수 있습니다.

# useradd vivek
# passwd vivek

사용자 정보를 확인하십시오.

# finger vivek

82
usermod -m -d /path/to/new/login/home/dir user 기존 사용자 홈 디렉토리가 존재하지 않는 경우 작성되는 새 로그인 디렉토리로 변경하는 경우, -m 옵션은 현재 홈 디렉토리의 내용을 새 홈 디렉토리로 이동합니다
Ibrahim Quraish

23

초기 사용자 폴더의 내용이이를 사용하여 이동되지 않기 때문에 허용 된 답변이 잘못되었습니다. 다른 답변을 추가하여 수정하겠습니다.

sudo usermod -d /newhome/username -m username

username으로 폴더를 만들 필요는 없으며 파일을 초기 사용자 폴더에서 / newhome / username 폴더로 이동합니다.


4

다른 독자가 adduser명령 에 대한 정보를 찾으십시오 .

편집하다 /etc/adduser.conf

DHOME변수 설정


0

이것이 일부 응용 프로그램을 중단한다는 것을 알았습니다.

symlink 외에도 최신 배포판 및 파일 시스템에서 root로 bind-mount를 사용할 수도 있습니다.

mkdir /home/username 
mount --bind --verbose /extra-home/username /home/username

이는 심볼릭 링크 (apache, ftpd 등)를 통한 경로를 피하도록 구성된 데몬을 통해 / home 디렉토리를 통해 / dir 디렉토리를 하위 디렉토리에 "접근"할 수 있도록하는 데 유용합니다.

물론 다시 시작할 때 바인딩하려면 기억해야합니다 (또는 init 스크립트).

init 스크립트의 예 /etc/fstab는 다음과 같습니다.

/extra-home/username /home/username none defaults,bind 0 0

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.