SW/리눅스

Linux : User 생성 방법, 예제, 명령어(useradd Command)

얇은생각 2021. 4. 6. 07:30
반응형

리눅스는 다중 사용자 시스템으로, 둘 이상의 사용자가 동시에 동일한 시스템과 상호 작용할 수 있습니다. 시스템 관리자는 사용자를 생성 및 제거하고 다른 그룹에 할당하여 시스템의 사용자 및 그룹을 관리할 책임이 있습니다.

 user add 명령을 사용하여 새 사용자 계정을 생성하는 방법에 대해 설명합니다.

 

 

Linux : User 생성 방법, 예제, 명령어(useradd Command)

 

 

user add 명령

useradd 명령의 일반적인 구문은 다음과 같습니다.

useradd [OPTIONS] USERNAME

 

 

root 또는 sudo 권한이 있는 사용자만 user add 명령을 사용하여 새 사용자 계정을 만들 수 있습니다. 

userad가 호출되면 useradd는 명령줄에 지정된 옵션과 /etc/default/useradd 파일에 설정된 기본값을 따라 새 사용자 계정을 생성합니다.

이 파일에 정의된 변수는 분포마다 다르며, 이로 인해 사용자 추가 명령이 서로 다른 시스템에서 다른 결과를 생성하게 됩니다. 

useradd는 /etc/defs 파일의 내용도 읽습니다. 이 파일에는 암호 만료 정책, 시스템 및 일반 사용자를 생성할 때 사용되는 사용자 ID 범위 등과 같은 섀도 암호 제품군에 대한 구성이 포함되어 있습니다.

 

 

 

Linux에서 새 사용자를 생성하는 방법

새 사용자 계정을 만들려면 useradd 명령과 사용자 이름을 차례로 호출합니다.

예를 들어 사용자 이름인 새 사용자를 생성하려면 다음을 실행합니다.

sudo useradd username

 

 

옵션 없이 실행되면 useradd는 /etc/default/useradd 파일에 지정된 기본 설정을 사용하여 새 사용자 계정을 만듭니다.

명령은 /etc/passwd, /etc/shadow, /etc/group 및 /etc/gshadow 파일에 항목을 추가합니다.

새로 만든 사용자로 로그인하려면 사용자 암호를 설정해야 합니다. 이렇게 하려면 passwd 명령을 실행한 다음 사용자 이름을 실행합니다.

sudo passwd username

 

 

암호를 입력하고 확인하라는 메시지가 표시됩니다. 강력한 암호를 사용해야 합니다.

사용자 사용자 이름에 대한 암호를 변경하는 중입니다.

# Changing password for user username.
# New password:
# Retype new password:
# passwd: all authentication tokens updated successfully.

 

 

 

새 사용자를 추가하고 홈 디렉토리를 생성하는 방법

대부분의 Linux 배포에서는 useradd를 사용하여 새 사용자 계정을 생성할 때 사용자의 홈 디렉토리가 생성되지 않습니다. 

-m(--create-home) 옵션을 사용하여 사용자 홈 디렉토리를 /home/username으로 생성합니다.

sudo useradd -m username

 

 

위의 명령은 새 사용자의 홈 디렉토리를 생성하고 /etc/skel 디렉토리에서 사용자의 홈 디렉토리로 파일을 복사합니다. /home/username 디렉토리에 파일을 나열하면 다음과 같은 초기화 파일이 표시됩니다.

ls -la /home/username/

# drwxr-xr-x 2 username username 4096 Dec 11 11:23 .
# drwxr-xr-x 4 root     root     4096 Dec 11 11:23 ..
# -rw-r--r-- 1 username username  220 Apr  4  2018 .bash_logout
# -rw-r--r-- 1 username username 3771 Apr  4  2018 .bashrc
# -rw-r--r-- 1 username username  807 Apr  4  2018 .profile

 

 

홈 디렉토리 내에서 사용자는 파일 및 디렉토리를 작성, 편집 및 삭제할 수 있습니다.

 

 

 

특정 홈 디렉토리로 사용자 생성

기본적으로 useradd는 /home에 사용자의 홈 디렉토리를 생성합니다. 사용자의 홈 디렉토리를 다른 위치에 작성하려면 d(--home) 옵션을 사용하십시오.

다음은 /opt/username의 홈 디렉토리로 사용자 이름인 새 사용자를 생성하는 방법을 보여 주는 예입니다.

sudo useradd -m -d /opt/username username

 

 

 

특정 사용자 ID를 가진 사용자 생성

리눅스 및 유닉스 계열 운영 체제에서 사용자는 고유한 UID 및 사용자 이름으로 식별됩니다.

UID(사용자 식별자)는 리눅스 시스템에서 각 사용자에게 할당한 고유한 양의 정수입니다. UID 및 기타 액세스 제어 정책은 시스템 리소스에 대해 사용자가 수행할 수 있는 작업 유형을 결정하는 데 사용됩니다.

기본적으로 새 사용자가 생성되면 시스템은 login.defs 파일에 지정된 사용자 ID 범위에서 사용 가능한 다음 UID를 할당합니다.

 -u(--uid) 옵션을 사용하여 user add를 호출하여 특정 UID를 가진 사용자를 생성합니다. 예를 들어 UID가 1500인 사용자 이름을 가진 새 사용자를 생성하려면 다음을 입력합니다.

sudo useradd -u 1500 username

 

 

id 명령을 사용하여 사용자의 UID를 확인할 수 있습니다.

id -u username

# 1500

 

 

 

특정 그룹 ID를 가진 사용자 생성

Linux 그룹은 Linux에서 사용자 계정을 구성하고 관리하는 데 사용되는 조직 단위입니다. 그룹의 주요 목적은 그룹 내의 사용자 간에 공유할 수 있는 특정 리소스에 대한 읽기, 쓰기 또는 사용 권한 실행과 같은 권한 집합을 정의하는 것입니다.

새 사용자를 생성할 때 useradd 명령의 기본 동작은 사용자 이름과 이름이 같고 GID가 UID와 동일한 그룹을 생성하는 것입니다. 

-g(--gid) 옵션을 사용하면 특정 초기 로그인 그룹을 사용하여 사용자를 생성할 수 있습니다. 그룹 이름이나 GID 번호를 지정할 수 있습니다. 그룹 이름 또는 GID가 이미 존재해야 합니다. 

다음 예에서는 사용자 이름인 새 사용자를 생성하고 로그인 그룹을 사용자 유형으로 설정하는 방법을 보여 줍니다.

sudo useradd -g users username

 

 

 

사용자의 GID를 확인하려면 id 명령을 사용합니다.

id -gn username

# users

 

 

 

사용자를 생성하고 여러 그룹을 할당

Linux 운영 체제 기본 그룹 및 보조(또는 보조) 그룹에는 두 가지 유형의 그룹이 있습니다. 각 사용자는 정확히 하나의 기본 그룹에 속할 수 있으며 0개 이상의 보조 그룹에 속할 수 있습니다.

사용자가 -G(--groups) 옵션으로 구성원으로 사용할 보조 그룹 목록을 지정합니다.

다음 명령은 기본 그룹 사용자 및 보조 그룹 휠 및 도커와 함께 사용자 이름인 새 사용자를 생성합니다.

sudo useradd -g users -G wheel,developers username

 

 

사용자 그룹을 입력하여 확인할 수 있습니다.

id username

# uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)

 

 

 

특정 로그인 셸을 사용하여 사용자를 생성

기본적으로 새 사용자의 로그인 셸은 /etc/default/useradd 파일에 지정된 셸로 설정됩니다. 일부 분포에서는 기본 셸이 /bin/sh로 설정되고 다른 분포에서는 /bin/bash로 설정됩니다. 

-s(--shell) 옵션을 사용하면 새 사용자의 로그인 셸을 지정할 수 있습니다.

 예를 들어 /usr/bin/zsh를 로그인 셸 유형으로 사용하여 사용자 이름인 새 사용자를 생성하려면 다음과 같이 하십시오.

sudo useradd -s /usr/bin/zsh username

 

 

/etc/passwd 파일에서 사용자 항목을 확인하여 사용자의 로그인 셸을 확인합니다.

grep username /etc/passwd

# username:x :1001:1001::/home/username:/usr/bin/zsh

 

 

 

사용자 지정 설명을 사용하여 사용자 생성

-c(--comment) 옵션을 사용하면 새 사용자에 대한 간단한 설명을 추가할 수 있습니다. 일반적으로 사용자의 전체 이름 또는 연락처 정보가 설명으로 추가됩니다.

다음 예에서는 사용자 이름 이름을 사용자 이름으로 만들고 텍스트 문자열로 사용자 계정 테스트를 주석으로 사용합니다. 

sudo useradd -c "Test User Account" username

 

 

설명은 /etc/passwd 파일에 저장됩니다. 

grep username /etc/passwd

# username:x :1001:1001:Test User Account:/home/username:/bin/sh

 

 

설명 필드는 GECOS라고도 합니다.

 

 

 

만료 날짜를 사용하여 사용자 생성

새 사용자 계정이 만료되는 시간을 정의하려면 -e(--만료일) 옵션을 사용하십시오. 임시 계정을 만들 때 유용합니다.

날짜는 YYYY-MM-DD 형식으로 지정해야 합니다.

예를 들어 만료 시간이 2019년 1월 22일로 설정된 사용자 이름 사용자 계정을 새로 생성하려면 다음을 실행합니다.

sudo useradd -e 2019-01-22 username

 

 

chage 명령을 사용하여 사용자 계정 만료 날짜를 확인합니다. 

sudo chage -l username

# Last password change					: Dec 11, 2018
# Password expires					: never
# Password inactive					: never
# Account expires						: Jan 22, 2019
# Minimum number of days between password change		: 0
# Maximum number of days between password change		: 99999
# Number of days of warning before password expires	: 7

 

 

 

시스템 사용자 생성

시스템과 일반(일반) 사용자 사이에는 실질적인 기술적 차이가 없습니다. 일반적으로 OS 및 새 패키지를 설치할 때 시스템 사용자가 생성됩니다. 

-r(--system) 옵션을 사용하여 시스템 사용자 계정을 만듭니다. 예를 들어 사용자 이름인 새 시스템 사용자를 생성하려면 다음을 실행합니다.

sudo useradd -r username

 

 

시스템 사용자는 만료 날짜 없이 생성됩니다. 해당 UID는 login.defs 파일에 지정된 시스템 사용자 ID 범위에서 선택되며, 일반 사용자에게 사용되는 범위와는 다릅니다.

 

 

 

기본 사용자 추가 값을 변경

-D, --defaults 옵션을 사용하거나 /etc/default/useradd 파일의 값을 수동으로 편집하여 기본 사용자 추가 옵션을 보고 변경할 수 있습니다.

현재 기본 옵션을 보려면 다음을 입력하십시오.

useradd -D

# GROUP=100
# HOME=/home
# INACTIVE=-1
# EXPIRE=
# SHELL=/bin/sh
# SKEL=/etc/skel
# CREATE_MAIL_SPOOL=no

 

 

기본 로그인 셸을 /bin/sh에서 /bin/bash로 변경하려고 합니다. 이렇게 하려면 아래 그림과 같이 새 셸을 지정하십시오.

sudo useradd -D -s /bin/bash

 

 

다음 명령을 실행하여 기본 셸 값이 변경되었는지 확인할 수 있습니다.

sudo useradd -D | grep -i shell

# SHELL=/bin/bash

 

 

user add 명령을 사용하여 새 사용자 계정을 생성하는 방법을 보여드렸습니다. Ubuntu, CentOS, RHEL, Debian, Fedora 및 Arch Linux를 포함한 모든 Linux 배포에도 동일한 지침이 적용됩니다. 

useradd는 낮은 수준의 유틸리티이며, Debian 및 Ubuntu 사용자는 대신 friendly adduser 명령을 사용할 수 있습니다. 

반응형