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