리눅스 사용자 변경(with 홈디렉토리) 방법 2가지

리눅스를 이용하면서 사용자명과 홈디렉토리명을 변경하고 싶을 때가 있습니다. 리눅스 사용자 변경 방법 그리고 홈디렉토리의 이름도 함께 변경하는 방법을 살펴보겠습니다.

리눅스 사용자 변경 및 홈디렉토리 변경 개요

이 작업은 반드시 sudoer 권한이 있는 계정이나 root 계정으로 로그인 해서 진행해야 합니다. 예를 들어, naru 계정으로 로그인 했다면, 이미 naru 계정과 관련된 리소스는 구동 중인 프로세스에 의해 점유되어 있기 때문에 변경이 불가능합니다.

사용자명 변경은 usermod 명령어를 사용하게 되는데, naru 계정으로 로그인 한 상태에서 명령어를 사용하면 아래와 같이 특정 프로세스에 의해 사용자 naru가 사용 중이라고 알려줍니다. sudo 명령어를 사용한다고 해도 마찬가지 결과입니다.

그림 1. 리눅스 사용자 변경 실패

그러면 문제 없이 진행하기 위한 작업 순서를 하나씩 살펴보도록 하겠습니다.

관리자 권한의 계정 준비

우선 이 작업을 위해서는 관리자 권한의 계정이 필요합니다. sudoer 권한을 가진 별도의 사용자 계정이 있든지, 아니면 root 계정으로 접근할 수 있어야 합니다.

우선 관리자 권한이 있는 새로운 사용자를 임시로 추가하는 방법을 살펴보고, root 계정의 비밀번호를 설정하는 방법을 살펴보겠습니다.

만약 둘 중 하나가 이미 준비된 상태라면 관리자 권한으로 로그인으로 바로 이동하시기 바랍니다.

sudoer 권한의 사용자 추가

sudoer 권한이 있는 사용자를 임시로 추가해 보도록 하겠습니다.

sudo adduser 새로운사용자명
ShellScript

저는 tmpuser라는 새로운 사용자를 추가해 보도록 하겠습니다. adduser 명령어를 실행하면 New password 그리고 Retype new password에 동일한 비밀번호를 입력해 줍니다. 그리고 난 후, Full Name, Room Number 등의 정보를 입력해 주는데, 입력하지 않고 엔터키만 눌러서 처리해도 됩니다. “Is the information correct?” 메시지를 만나면 Y를 눌러주면, 새로운 사용자가 추가됩니다.

그림 2. 새로운 임시 사용자 추가
그림 2. 새로운 임시 사용자 추가

이제 새로 만든 사용자 tmpuser에게 sudo 권한을 주도록 하겠습니다.

sudo adduser 사용자명 sudo
ShellScript

아래와 같이 sudo 그룹에 tmpuser를 추가한다고 알려줍니다.

그림 3. 새로운 임시 사용자에게 sudo 권한 부여

이제 sudoer 권한을 획득한 사용자 tmpuser를 준비했습니다.

root 계정 비밀번호 설정

sudoer 권한이 있는 계정이 바꾸려고 하는 사용자 계정 외에 더 있거나 root 계정의 비밀번호를 알고 있다면 이 단계는 건너 뛰어도 됩니다.

여기에서는 root 계정의 비밀번호를 설정해서 진행해 보도록 하겠습니다.

root 계정의 비밀번호는 passwd 명령어를 사용해서 다음과 같이 설정해 줍니다.

sudo passwd root
ShellScript

명령어를 실행하면 아래와 같이 New password와 Retype new password가 나옵니다. 모두 동일한 비밀번호를 입력해 주면, passwd: password updated successfully 메시지로 root 계정의 비밀번호 설정이 끝났다는 것을 확인할 수 있습니다.

그림 4. root 계정 비밀번호 설정
그림 4. root 계정 비밀번호 설정

관리자 권한으로 로그인

usermod, groupmod 명령을 실행하기 위해서는 관리자 권한을 가진 계정으로 로그인 해야 합니다.

재부팅까지도 필요 없고, 현재 사용하는 계정을 로그아웃 해 준 후 로그인해야 하는데, 굳이 GUI는 필요하지 않으니 Ctrl + Alt + F3~F6을 눌러서 터미널로 진입합니다. 저는 Ctrl + Alt + F4를 눌러서 tty4로 들어온 것을 확인할 수 있습니다.

sudoer 권한이 있는 계정으로 로그인

임시로 생성한 계정 tmpuser로 로그인합니다.

그림 5. 임시 계정으로 로그인
그림 5. 임시 계정으로 로그인

root 계정으로 로그인

또는 root를 입력하고 root 계정의 비밀번호를 입력해서 로그인합니다.

그림 6. root 계정으로 로그인

사용자 이름 변경하기: usermod -l

usermod -l 옵션을 이용하면 되는데, -l 옵션은 manual에서 new value of the login name이라고 합니다. 즉, 로그인 이름을 새로운 이름으로 변경할 때 사용하는 옵션이라는 것을 알 수 있습니다.

sudo usermod -l 새로운사용자명 이전사용자명
ShellScript

이제 사용자 naru의 이름을 noru로 변경해 주려고 합니다. 정상적으로 실행되면 별다른 메시지 없이 아래와 같이 바로 명령 프롬프트가 떨어져야 합니다.

그림 7. 리눅스 사용자 변경
그림 7. 리눅스 사용자 변경

홈 디렉토리 변경하기: usermod -md

root 계정으로 /home 디렉토리로 이동해서 홈 디렉토리를 확인해 보겠습니다. 아직은 naru 라는 디렉토리 이름인 것을 확인할 수 있습니다. 사용자 계정과 홈 디렉토리의 이름이 일치하지 않으니 혼란스럽죠.

그림 8. 리눅스 사용자명과 홈디렉토리명이 다른 것 확인
그림 8. 리눅스 사용자명과 홈디렉토리명이 다른 것 확인

이제 usermod -md를 이용해서 홈 디렉토리를 변경해 주겠습니다. -m 옵션은 move home의 의미로 지정하는 디렉토리로 홈 디렉토리를 옮기겠다는 것이며, -d는 사용자 계정의 새로운 홈 디렉토리를 설정해 준다는 것입니다. -m옵션은 오로지 -d 옵션만을 함께 -md로 사용할 수 있습니다.

sudo usermod -md 새로운홈디렉토리경로 사용자명
ShellScript

usermod -md 옵션을 사용해서 noru 사용자의 홈 디렉토리를 변경해 주고 지정해 주었습니다. ls 명령어를 통해서 확인해 보니 noru로 변경된 것을 볼 수 있습니다.

그림 9. 리눅스 사용자 홈디렉토리 변경
그림 9. 리눅스 사용자 홈디렉토리 변경

하지만, 그룹명이 아직 naru로 남아있는 것을 볼 수 있죠. 그룹명도 noru로 변경해 보도록 하겠습니다.

그룹명 변경하기: groupmod -n

그룹명을 변경하는 방식도 동일합니다. 단 명령어가 usermod가 아니라 groupmod 라는 점이 다르며 옵션도 조금 차이가 있습니다.

sudo groupmod -n 새그룹명 이전그룹명
ShellScript

그룹명 naru를 noru로 변경해 보겠습니다.

그림 10. 리눅스 그룹명 변경
그림 10. 리눅스 그룹명 변경

이제 계정명, 홈디렉토리 경로, 그리고 그룹명까지 모두 변경되었습니다.

임시 사용자 계정 및 디렉토리 삭제

root 계정으로 직접 작업하신 분들은 해당하지 않으며, 임시 사용자를 추가해서 사용했던 분들에게 필요한 과정입니다.

tmpuser 계정을 로그아웃 하고, root 계정이나 새로 변경한 계정으로 들어가서 이제 임시 사용자로 추가했던 사용자 tmpuser를 삭제하도록 하겠습니다.

sudo deluser tmpuser
ShellScript

마지막으로 사용자 홈 디렉토리도 삭제하도록 하겠습니다.

sudo rm -rf /home/tmpuser
ShellScript

관련 자료

Linux usermod man pagegroupmod man page를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment