Profile picture

[Linux] Ubuntu에서 계정(유저) 생성하기

JaehyoJJAng2023년 03월 12일

adduser

  • adduser 명령어를 통해 계정을 생성할 경우 기본 계정 정보,홈 디렉토리,쉘 설정 등 한 번에 진행되며 생성된다
  • adduser [계정이름]

$ adduser testuser

Adding user `testuser' ...
Adding new group `testuser' (1001) ...
Adding new user `testuser' (1001) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
New password:
BAD PASSWORD: it is too simplistic/systematic
Retype new password:
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n]

유저가 정상적으로 생겼는지 확인해보자

$ cat /etc/passwd | grep 'testuser'

testuser:x:1001:1001:,,,:/home/testuser:/bin/bash

useradd

  • useradd 명령어는 계정을 생성하고 추가적으로 더 설정을 해주어야 함

주요 옵션

옵션 설명
-p 사용자의 암호(Password)를 추가할 떄 사용
-d - 홈 디렉토리를 지정할 때 사용
- 최종 디렉토리만 생성하므로 중간 경로가 있는 경우에는 미리 생성해야 함
-g - 그룹(Group)을 지정할 때 사용
- 지정할 그룹이 미리 생성되어 있어야 함
- 이 옵션을 지정하지 않을 경우, 아이디와 동일한 그룹에 포함
-G 기본 그룹 이외에 추가로 그룹에 속하게 할 경우 사용 (--groups)
-s 사용자 생성 시, 사용자가 사용할 셸(Shell)을 지정할 때 사용
-m - 사용자를 생성할 떄, 홈 디렉토리를 생성해주는 옵션
- 레드헷 계열 리눅스는 이 옵션을 사용하지 않아도 홈 디렉토리가 생성됨
- 보통 -k 옵션과 같이 사용하여 사용자 생성 시 기본적으로 부여되는 목록이 들어있는 skeldir을 지정할 떄 사용
-k 사용자 생성 시에 제공되는 환경 파일들은 기본적으로 /etc/skel로 지정되어 있는데, 이외의 디렉토리를 지정할 떄 사용
-f 사용자의 패스워드 만기일을 날짜수로 지정할 떄 사용
-e 계정의 만기일(Expiration)을 YYYY-MM-DD 형식으로 지정할 떄 사용
-u 사용자 추가 시에 UID 값 지정

1. 계정 생성

useradd 명령어로 계정을 생성

$ useradd testuser

2. 비밀번호 설정

passwd 명령어로 생성한 계정의 비밀번호를 설정

$ passwd [계정 이름]

3. 홈 디렉토리 생성

1,2번 과정을 진행하고 testuser의 계정 정보를 보면(cat /etc/passwd) /home/testuser라고 되어있지만, 실제로는 생성이 되어 있지 않다

# testuser:x:1001:1001::/home/testuser:/bin/sh
$ cd /home/testuser

-bash: cd: /home/testuser: No such file or directory

mkdir 명령어로 홈 디렉토리를 생성해주자

$ mkdir /home/testuser

4. 홈 디렉토리 권한 부여

현재 root 권한으로 디렉토리를 생성했기 때문에 소유자와 그룹 모두가 root로 되어있다

$ ls -lh /home/

drwxr-xr-x 2 root root 4.0K May 29 18:46 testuser

testuser 계정으로 소유자와 그룹을 이동시켜주자

$ chown -R testuser:testuser /home/testuser
$ ls -lh /home

drwxr-xr-x 2 testuser testuser 4.0K May 29 18:46 testuser

5. 그룹 지정

생성한 계정이 가입될 그룹을 생성하고 추가해주자

# 그룹 생성
$ groupadd [생성할 그룹 이름]

# 유저를 해당 그룹에 추가
$ usermode -G [그룹 이름] [가입할 계정 이름]
$ groupadd testgroup
$ usermod -G testgroup testuser

6. 기본 쉘 설정

현재 기본 쉘로 dash 쉘을 사용하고 있다. bash 쉘로 변경하려면 다음과 같이 해보도록 하자

$ usermod -s [쉘 경로] [계정 이름]
$ usermod -s /bin/bash testuser

계정 삭제하기

1. 계정만 삭제하기

userdel 커맨드를 사용하여 계정만 삭제해보자

$ sudo userdel [계정이름]
$ sudo userdel testuser

2. 계정의 홈 디렉토리도 삭제하기

  • r : 계정 삭제 시 홈 디렉토리를 포함한 모든 정보 삭제
  • f : 강제 삭제

계정을 삭제할 때 계정의 홈 디렉토리도 같이 삭제해보자

$ sudo userdel -rf [계정 이름]
$ sudo userdel -rf testuser 2>/dev/null

Loading script...