개발 창고/Server

[Linux] How to change user account information

로이제로 2023. 11. 7. 22:00
반응형

 

How to change user account information

 리눅스 계정을 만들면 일반적으로 계정 아이디를 바꾸는 경우가 많이 발생하지 않지만 알아두거나 메모해 두면 굳이 내 비활성 메모리인 뇌에 저장하지 않아도 되므로 많은 도움이 될 겁니다. 또한 usermod는 계정 아이디뿐만 아니라 각 종 정보를 변경하는 데 사용됩니다.

 

usermod

  • 사용자 계정과 관련된 다양한 정보들을 변경하는 명령어

user --help 결과

usermod [옵션] <계정>
주요 옵션 내용
-c --comment COMMENT 사용자의 간단한 정보를 입력하거나 변경 (comment)
-d --home HOME_DIR 사용자 홈 디렉토리를 변경. 변경할 디렉터리는 미리 생성되어야 합니다. -m과 같이 사용하면 사용하던 홈 디렉터리 파일과 디렉터리도 같이 옮겨줍니다.
-e --expiredate EXPIRE_DATE 계정만기일 변경. YYYY-MM-DD 또는 MM/DD/YY 형태로 지정
-f --inactive INACTIVE 패스워드 만기일이 지난 후 패스워드 잠금을 설정할 유예기간을 지정
-g --gid GROUP 사용자 기본그룹 변경
-G --groups GROUPS 사용자 추가그룹 변경 (기본 그룹외 다른 그룹 추가)
-a --append -G옵션과 함께 사용하는 옵션으로 2차 그룹 이외에 추가 그룹을 지정할 때 사용
-l --login NEW_LOGIN 사용자 아이디 변경
-L --lock 사용자 패스워드 잠금
-m --move-home 사용자의 홈 디렉터리 변경 시 기존에 사용하던 파일 및 디렉터리를 옮겨주는 옵션으로 -d와 함께 사용됩니다.
-p --password PASSWORD /etc/shadow의 2번째 필드인 암호화된 패스워드 값을 변경. 이 옵션 사용 시 암호화된 값으로 값을 지정해주어야 함
-s --shell SHELL 사용자 쉘 변경
-u --uid UID 사용자 UID 변경
-U --unlock 사용자 패스워드 잠금 해제

 

요구사항

  • usermod 명령어를 실행하려면 기존 사용자 계정이 있어야 합니다.
  • 관리자계정(root)만 usermod 명령어를 실행할 수 있습니다.
  • usermod 명령어는 모든 Linux 배포판에서 실행할 수 있습니다.
  • usermod 명령어를 사용하기 위해서는 옵션에 대한 기본 지식이 있어야 합니다.

 

사용예시

▶︎ 사용자 계정 변경

usermod -l 신규계정명 기존계정명
# 기존 계정 정보 확인
$> grep user1 /etc/passwd

# 신규 계정 정보 확인
$> grep user2 /etc/passwd

# 계정 정보 변경 (root권한 필요)
$> sudo usermod -l user2 user1

# 기존 계정 정보 확인
$> grep user1 /etc/passwd

# 신규 계정 정보 확인
$> grep user2 /etc/passwd

계정정보가 user1에서 user2로 변경된 결과

 

▶︎ 코멘트 달기

usermod -c "코멘트" <계정>
# 기존 코멘트 확인
$> grep user2 /etc/passwd

# 코멘트 변경
$> sudo usermod -c "This is user2 comment" user2

# 변경 코멘트 확인
$> grep user2 /etc/passwd

user2의 코멘트가 "This is user2 comment"로 변경됨

 

▶︎ 계정 만기일 설정

usermod -e <만기일(YYYY-MM-DD or DD/MM/YY)> <계정>
# 변경 전 계정 만기일 확인
$> sudo chage -l user2

# 계정이 2023년 10월 09일에 만기 되도록 변경
$> sudo usermod -e 2023-10-09 user2

# 변경 된 계정 만기일 확인
$> sudo chage -l user2

user2 만기일이 naver에서 23년 10월 9일로 변경 됨

 

▶︎ 계정 그룹 변경

usermod -g <새로운그룹> <계정>
# user2 계정의 현재 그룹 확인
$> id user2

# 신규 그룹을 만드는 경우 (기존 그룹에 추가하려면 Pass)
$> sudo groupadd group2

# user2 계정의 그룹을 user1(group명)에서 group2로 변경
$> sudo usermod -g group2 user2

# user2 계정의 변경 된 그룹 확인
$> id user2

user2의 그룹이 user1(1001)에서 group2(1002)로 변경됨

 

▶︎ 추가 그룹 설정 (groups에 추가)

usermod -G <추가할그룹> <계정>
# user2의 현재 그룹 정보 확인
$> id user2

# user2에 user1 그룹 추가 (이전 예시에서 변경한 user1그룹을 서브 그룹으로 포함)
$> sudo usermod -G user1 user2

# user2의 추가 그룹 정보 확인
$> id user2

user2 계정에 user1이라는 그룹 정보가 추가된 결과

 

▶︎ 계정 쉘 변경

usermod -s <쉘> <계정>
# user2의 기존 쉘 확인
$> grep user2 /etc/passwd

# 쉘을 telnet 또는 ssh에서 접근 불가한 /bin/false로 변경
$> sudo usermod -s /bin/false user2

# user2의 변경 쉘 확인

user2의 쉘이 /bin/sh에서 /bin/false로 변경

 

반응형