Safely Changing a Linux User's Home Directory with usermod -d
How to safely relocate a Linux user's home directory
July 9, 2026
Safely Changing a Linux User's Home Directory with usermod -d
디스크 용량 부족이나 별도 스토리지로의 이전 등으로 특정 사용자의 홈 디렉토리 위치를 바꿔야 할 때가 있습니다.
usermod -d로 경로만 바꾸는 것은 간단하지만, 사용자가 로그인 중이거나 데이터 정합성이 중요한 경우에는 세션 종료, 백업, 권한 설정까지 순서대로 진행해야 안전합니다.
1. Check for Active Sessions and Processes
홈 디렉토리를 옮기기 전, 해당 사용자가 로그인 중이거나 실행 중인 프로세스가 있는지 먼저 확인합니다.
Check processes and sessions owned by the usersh
2. Terminate the User's Sessions
남아있는 프로세스와 세션을 모두 종료합니다.
Kill all processes and sessions for the usersh
pkill -KILL -u는 해당 사용자 소유의 모든 프로세스를 강제 종료하고, systemd 기반 배포판이라면 loginctl terminate-user로 로그인 세션까지 함께 정리할 수 있습니다.3. Backup the Existing Home Directory
usermod -d -m을 쓰면 기존 데이터를 자동으로 옮겨주지만, 실패 시 되돌리기 어려우므로 별도로 백업을 먼저 만드는 것을 권장합니다.Backup home directory with rsyncsh
rsync -aHAX는 권한, 하드링크, ACL, 확장 속성(xattr)까지 그대로 보존하기 때문에 홈 디렉토리 백업에 적합합니다.cp로도 동일하게 백업할 수 있습니다.Alternative: backup with cpsh
4. Set Ownership and Permissions on the New Home Directory
백업본의 소유권과 권한이 원본과 정확히 일치하는지 다시 한번 확인합니다.
Fix ownership and permissionssh
chown -R로 소유권을 재귀적으로 맞추고, 홈 디렉토리의 기본 권한인 700(소유자만 접근 가능)을 chmod로 다시 지정합니다.5. Change the Home Directory with usermod
새 경로에 데이터와 권한이 모두 준비되었다면
usermod -d로 홈 디렉토리 경로만 변경합니다.Change the user's home directorysh
이미 수동으로 백업했다면
-m 옵션 없이 경로만 바꾸는 것으로 충분합니다.-m 옵션을 함께 쓰면 usermod가 기존 홈 디렉토리의 내용을 새 경로로 직접 옮겨주지만, 새 경로가 이미 존재하면 실패하므로 이번처럼 미리 백업해둔 경우에는 사용하지 않습니다.6. Verify the Change
변경된 홈 디렉토리가 정상적으로 반영되었는지 확인합니다.
Verify the new home directorysh
7. Clean Up the Old Home Directory
새 홈 디렉토리에서 로그인과 작업이 문제없이 되는 것을 확인한 뒤에만 기존 디렉토리를 삭제합니다.
Remove the old home directory once verifiedsh
Bonus: Creating a New User with a Custom Home Directory
기존 사용자를 옮기는 대신, 처음부터 원하는 위치를 홈 디렉토리로 지정해서 새 사용자를 만들 수도 있습니다.
Create a new user with a custom home directorysh
-d로 홈 디렉토리 경로를, -m으로 해당 경로에 홈 디렉토리 생성 및 /etc/skel의 기본 파일 복사를, -s로 로그인 셸을 지정합니다.Command Summary
| 명령어 | 설명 |
|---|---|
ps -u <user> / who / w | 사용자의 활성 프로세스 및 세션 확인 |
pkill -KILL -u <user> | 사용자 소유 프로세스 강제 종료 |
loginctl terminate-user <user> | systemd 로그인 세션 종료 |
rsync -aHAX src/ dst/ | 권한·ACL·xattr을 보존한 백업 |
chown -R <user>:<group> <dir> | 디렉토리 소유권 재귀 변경 |
chmod 700 <dir> | 홈 디렉토리 기본 권한 설정 |
usermod -d <newhome> <user> | 홈 디렉토리 경로 변경 |
usermod -d <newhome> -m <user> | 홈 디렉토리 변경과 동시에 데이터 이동 |
useradd -m -d <newhome> -s <shell> <user> | 지정한 경로를 홈으로 갖는 신규 사용자 생성 |