useradd 명령어
useradd는 Linux와 Unix 기반 운영 체제에서 사용자 계정을 추가하는 명령어입니다. 이 명령어를 사용하여 새로운 사용자 계정을 생성할 수 있으며 필요에 따라 사용자에게 홈 디렉토리를 생성하고 기본 설정을 구성할 수 있습니다.
명령어 구문
useradd [옵션] 사용자명
옵션
- -c: 사용자에 대한 설명을 추가합니다.
- -d: 사용자의 홈 디렉토리 경로를 지정합니다.
- -g: 사용자가 속할 기본 그룹을 지정합니다.
- -m: 홈 디렉토리를 생성하고 기본 파일을 복사합니다.
- -s: 사용자의 로그인 쉘을 지정합니다.
- -u: 사용자의 UID(사용자 식별자)를 지정합니다.
- -G: 사용자가 속할 보조 그룹을 지정합니다.
사용 예시
새로운 사용자 계정 추가 (홈 디렉토리 생성하지 않음)
sudo useradd john
위 명령어는 "john"이라는 사용자 계정을 생성하며 기본적으로는 홈 디렉토리가 생성되지 않습니다.
사용자 계정 추가와 홈 디렉토리 생성
sudo useradd -m jane
위 명령어는 "jane"이라는 사용자 계정을 생성하고 홈 디렉토리를 생성합니다.
설명과 UID 지정
sudo useradd -c "John Doe" -u 1001 johndoe
위 명령어는 "johndoe"라는 사용자 계정을 생성하고 사용자 설명을 "John Doe"로 지정하며 UID를 1001로 지정합니다.
로그인 쉘 지정
sudo useradd -s /bin/bash alice
위 명령어는 "alice"라는 사용자 계정을 생성하고 로그인 쉘을 "/bin/bash"로 지정합니다.
그룹 지정
sudo useradd -g developers -G sudo,bashusers dave
위 명령어는 "dave"라는 사용자 계정을 생성하고 기본 그룹을 "developers"로 지정하며 보조 그룹으로 "sudo"와 "bashusers"를 추가합니다.
비밀번호 설정
useradd 명령어는 기본적으로 비밀번호를 설정하지 않으므로 생성한 계정으로 로그인하려면 passwd 명령어를 사용하여 비밀번호를 설정해야 합니다.
sudo passwd johndoe
apache 계정 생성
useradd -c "Apache" -u 48 -s /sbin/nologin -m -d /home/www apache
vim /etc/passwd
apache:x:48:48:Apache:/home/www:/sbin/nologin
mysql 계정 생성
useradd -m -c "MySQL Server" -d /usr/local/mysql -s /bin/false -u 27 mysql
tomcat 계정 생성
groupadd tomcat
useradd -c "Tomcat Service" -m -d /apps/tomcat -s /usr/sbin/nologin -g tomcat tomcat
amen 그룹 및 계정 생성
groupadd -g 1001 amen
useradd -m -c "System Account" -d /home/amen -s /bin/bash -u 1001 -g 1001 amen
$ cat /etc/group
amen:x:1001:
$ cat /etc/passwd
amen:x:1001:1001:System Account:/home/amen:/bin/bash
사용법
$ useradd -h
Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
Options:
--badnames do not check for bad names
-b, --base-dir BASE_DIR base directory for the home directory of the
new account
--btrfs-subvolume-home use BTRFS subvolume for home directory
-c, --comment COMMENT GECOS field of the new account
-d, --home-dir HOME_DIR home directory of the new account
-D, --defaults print or change default useradd configuration
-e, --expiredate EXPIRE_DATE expiration date of the new account
-f, --inactive INACTIVE password inactivity period of the new account
-g, --gid GROUP name or ID of the primary group of the new
account
-G, --groups GROUPS list of supplementary groups of the new
account
-h, --help display this help message and exit
-k, --skel SKEL_DIR use this alternative skeleton directory
-K, --key KEY=VALUE override /etc/login.defs defaults
-l, --no-log-init do not add the user to the lastlog and
faillog databases
-m, --create-home create the user's home directory
-M, --no-create-home do not create the user's home directory
-N, --no-user-group do not create a group with the same name as
the user
-o, --non-unique allow to create users with duplicate
(non-unique) UID
-p, --password PASSWORD encrypted password of the new account
-r, --system create a system account
-R, --root CHROOT_DIR directory to chroot into
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL login shell of the new account
-u, --uid UID user ID of the new account
-U, --user-group create a group with the same name as the user
-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mapping
--extrausers Use the extra users database
'리눅스' 카테고리의 다른 글
| [draft] apt/apt-get command (0) | 2026.03.05 |
|---|---|
| [draft] CentOS 8에서 Yum Repository 서버를 구축하는 방법 (0) | 2026.03.05 |
| [draft] PHP 서버 정보를 확인하는 방법 (0) | 2026.03.04 |
| [draft] Apache(httpd)와 PHP 버전 정보를 숨기는 방법 (0) | 2026.03.04 |
| [draft] CentOS 7에서 YUM을 이용한 APM(Apache · PHP · MariaDB) 설치하는 방법 (0) | 2026.03.04 |