본문 바로가기

Tech/Linux

[Linux] 사용자 계정 생성 (adduser, useradd)

반응형

서버를 운영하면서 root 계정이 아닌 각각의 사용자별로 계정을 생성해야했다. 이에 더해서 때로는 특정 계정이 sudo 를 사용할 수 있도록 sudo 권한을 부여해야 하는 경우도 발생하였다. 이와 관련해서 ubuntu 에서 계정을 생성하는 방법과 권한 부여와 관련된 내용을 정리하려고 한다.

 

이 글은 Ubuntu 20.04.3 LTS 버전을 기반으로 작성하였다.

1. ubuntu 계정 생성

ubuntu 에서 계정을 생성하는 명령어는 두가지가 존재한다. adduser 와 useradd 이다.

 

두 명령어는 모두 사용자 계정을 생성하는 명령어지만 계정 생성시에 계정 정보 입력, 홈 디렉토리 생성, 쉘 설정 등을 함께할 것인지, 계정만 생성할 것인지에 차이가 있다. adduser 의 경우에는 계정 생성시에 계정 정보 입력 및 설정들을 함께 수행하는 반면에 useradd 는 사용자의 계정만 생성하고 이후 따로 설정을 해주어야 한다.

2. adduser

$ adduser [options] USER

 

adduser 는 adduser 뒤에 옵션들과 생성할 계정의 ID 를 입력하여 실행한다. 아래는 adduser 명령어를 사용하여 test1 이라는 계정을 생성한 화면을 캡쳐한 이미지이다.

 

 

adduser 명령어를 실행하면 먼저 사용자 계정을 생성한 후에 사용자 명과 동일한 그룹을 생성하고 그룹에 사용자를 추가한다. 그 다음 사용자의 홈 디렉토리를 생성하고 /etc/skel 디렉토리의 내용을 홈 디렉토리로 복사한다.

 

※ /etc/skel

/etc/skel 디렉토리는 리눅스에서 홈 디렉토리를 생성할때 사용하는 디렉토리이다. 디렉토리의 이름은 skeleton 을 의미하며 이름 그대로 홈 디렉토리의 뼈대가 되는 디렉토리이다.

/etc/skel 디렉토리는 다음의 세개의 파일을 가지고 있다.

- .profile: 사용자 로그인 시에 실행되는 쉘 파일
- .bash_logout: 사용자 로그아웃 시에 실행되는 쉘 파일
- .bashrc: .profile 파일에 의해 실행되는 쉘 파일로 alias 나 쉘 설정 등을 포함하는 파일이다.

 

홈 디렉토리를 구성한 다음에는 비밀번호를 설정한다. 비밀번호가 보안에 취약한 경우에는 위와 같이 "BAD PASSWORD: ..." 라고 경고창이 출력된다. 비밀번호 설정 후에는 사용자 기본 정보를 입력하고 작업을 완료한다.

3. useradd

$ useradd [options] LOGIN

 

useradd 도 adduser 와 동일하게 명령어와 생성할 계정의 ID 를 입력하여 사용자 계정을 생성할 수 있다. 둘의 차이점은 options 에 있는데, 앞선 adduser 는 기본적으로 사용자 생성시에 정보를 입력받도록 되어있어서 명령어 자체에서 옵션으로 사용자 정보를 입력받지 않는다. 하지만 useradd 의 경우에는 옵션들로 사용자 계정 정보나 홈 디렉토리 생성 여부 등을 입력할 수 있도록 되어있다. 자세한 내용은 -h 옵션으로 명령어 도움말을 비교하면 확인할 수 있다.

 

 

아무런 옵션을 주지않은 useradd 는 adduser 와 달리 아무런 정보도 입력받지 않는다. 이때 사용자 계정의 비밀번호도 따로 설정되지 않기 때문에 test2 계정으로 로그인할 수도 없다.

 

 

passwd 명령어를 사용하여 adduser 에서 비밀번호를 설정한 것과 동일하게 test2 계정의 비밀번호를 설정할 수 있다.

 

사용자의 그룹의 경우에는 useradd 에서도 기본적으로 사용자 계정명과 같은 이름의 그룹이 생성되고 이에 해당 사용자가 추가되어 있다. 다만 홈 디렉토리는 생성되어있지 않기 때문에 홈 디렉토리를 생성해주어야 한다.

 

 

사용자 계정 ID 와 동일한 test2 라는 디렉토리를 home 아래에 만들어준다. 그 다음에 해당 디렉토리의 권한을 변경해준다. 지금은 생성한 사용자인 dev 로 소유주와 그룹이 설정되어 있지만 chown 을 사용하여 test2:test2 로 권한을 변경해준다.

 

 

설정을 완료한 후에 test2 계정으로 로그인하면 설정한 비밀번호를 입력하고 로그인할 수 있다. cd ~ 명령어를 사용하여 홈 디렉토리로 이동하면 정상적으로 /home/test2 로 이동한 것을 확인할 수 있다. 하지만 자세히 보면 쉘의 형태가 dev 에서와 다른 것을 확인할 수 있다. 이는 기본 쉘이 다르기 때문이다.

 

 

위의 이미지에서와 같이 adduser 로 생성된 test1 은 /bin/bash 를 useradd 로 생성된 test2 는 /bin/sh 를 기본 쉘로 사용하고 있다.

 

 

usermod 명령어를 사용하여 기본 쉘을 /bin/bash 로 설정한 후에 확인하면 test2 계정이 /bin/bash 로 변한 것을 확인할 수 있다.

 

 

bash 쉘로 설정을 바꾼 후에 쉘 설정을 위해서 adduser 에서와 같이 /etc/skel 디렉토리를 복사한다.

 

 

설정을 완료한 후에 test2 계정에 로그인해보면 다른 계정들과 동일한 설정의 쉘로 접속하는 것을 확인할 수 있다.

4. 정리

Ubuntu 에서 사용자 계정을 생성할 수 있는 두 명령어 useradd 와 adduser 에 대해서 정리해보았다.

두 명령어 모두 새로운 사용자 계정을 생성하는 명령어이지만 기본 기능과 옵션에서 차이를 보였다. adduser 는 기본적으로 사용자의 정보를 입력받아 계정을 생성하는 반면 useradd 는 옵션으로 따로 정보를 입력하거나 계정 생성후에 따로 정보를 설정해주어야 한다.

 

두 명령어를 비교해보면 사용자 계정에 대해서 따로 설정을 해주어야 하는 경우가 아니라면 홈 디렉토리를 자동으로 생성해주고 계정 생성시에 비밀번호 설정 및 사용자 정보를 입력하도록 하는 adduser 명령어를 사용하는 것이 더 편리할 것 같다.

[Reference]

- https://velog.io/@xangj0ng/Linux-Ubuntu-%EA%B6%8C%ED%95%9C-%EC%84%A4%EC%A0%95

 

[Linux] Ubuntu 계정 권한 설정

우분투 리눅스를 설치할 때 sudo 권한(관리자 권한)이 필요할 때가 종종 있다. sudo 권한이 없으면 접근 권한이 있는 디렉토리로 변경하거나 sudo su 명령어를 통해 root 계정으로 컴파일 설치할 수 있

velog.io

- https://mungiyo.tistory.com/14

 

[Linux] ubuntu에서 계정 생성 하기

우분투에서 계정을 생성할 일이 생길 수 있는데 어떻게 생성할 수 있을까? 우분투에서는 계정을 생성하는 두 가지 명령어가 있는데 adduser와 useradd가 있다. 1. adduser 명령어를 통해 계정을 생성할

mungiyo.tistory.com

- https://dololak.tistory.com/273

 

[Linux] 리눅스 /etc/skel/ 디렉터리

리눅스 /etc/skel/ 디렉터리 리눅스에서 useradd 또는 adduser 명령어를 통해 계정을 생성한 경우 해당 계정의 홈 디렉터리에는 기본적으로 최소 세 개의 숨김파일이 생성됩니다. .bash_logout - 로그아웃

dololak.tistory.com

 

반응형

'Tech > Linux' 카테고리의 다른 글

[Linux] 디스크 마운트 (fdisk, mkfs, mount, df)  (0) 2023.11.30
[Linux] 사용자 권한 (sudo, sudoers, chmod, chown)  (2) 2023.11.28
[Linux] 리눅스 locale 설정  (0) 2022.06.23
[Linux] df  (0) 2022.06.06
[Linux] PID, PPID  (0) 2022.01.08