강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

useradd를 이용한 여러가지 계정생성하는 다양한 방법들

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

useradd를 이용한 여러가지 계정생성하는 다양한 방법들






useradd를 이용하여 새로운 계정을 생성하는 가장 간단한 방법을 보았다.

 

 

 

 그리고 useradd로 새로운 사용자가 생성될 때에 서버 내부에 실제로 어떤 작업들이 이루어지는가에 대해서 알아보았다.

 

 

 

 따라서 이번에는 useradd를 이용하여 좀 다른 방법으로 새로운 계정을 생성해보도록 하겠다.

 

 

 

 먼저, 다음 예를 보기 바란다.

 

 

 

 

[root@RockyLinux01 ~]# useradd -d /user/bible2 -u 5000 -s /bin/sh bible2

[root@RockyLinux01 ~]#

 

 

, 위의 예는 홈디렉토리위치를 /user/bible2로 지정(-d /user/bible2)하였고, UID5000으로 지정(-u 5000)하였으며, 기본사용쉘을 본쉘로 지정(-s /bin/sh)하여 bible2라는 사용자를 새롭게 생성하였다.

 

 

 

  , 간단히 정리하면 다음과 같다.

 

 

 

 

 

이 결과로 생성된 파일의 내용을 보면 다음과 같다.

 

 

 

 먼저 /etc/passwd파일과 /etc/shadow파일, 그리고 /etc/group파일에 추가된 bible2사용자의 계정정보이다.

 

 

 

 

 

[root@RockyLinux01 ~]# grep bible2 /etc/passwd

bible2:x:5000:5000::/user/bible2:/bin/sh

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# grep bible2 /etc/shadow

bible2:!!:19529:0:99999:7:::

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# grep bible2 /etc/group

bible2:x:5000:

[root@RockyLinux01 ~]#

 



 

그리고 다음은 bible2사용자의 홈디렉토리(/user/bible2)의 내용이다.

 

 

 

[root@RockyLinux01 ~]# ls -al /user/bible2/

합계 16

drwx------ 4 bible2 bible2 111  6 21 15:04 .

drwxr-xr-x 3 root   root    20  6 21 15:04 ..

-rw-r--r-- 1 bible2 bible2  18  1 24 07:42 .bash_logout

-rw-r--r-- 1 bible2 bible2 141  1 24 07:42 .bash_profile

-rw-r--r-- 1 bible2 bible2 492  1 24 07:42 .bashrc

drwxr-xr-x 4 bible2 bible2  39  4 28 15:57 .mozilla

-rw-r--r-- 1 bible2 bible2 658  5 15  2022 .zshrc

drwxr-xr-x 2 bible2 bible2  24  6 14 15:24 public_html

[root@RockyLinux01 ~]#

 

 

 

 

이번에는 useradd를 이용하여 다른 예를 보도록 하자.

 

[root@RockyLinux01 ~]# useradd -d /home/sspark2 -u 2000 -s /bin/sh -c ParkSungSoo -e 2023-12-31 -p 88888888 sspark2

[root@RockyLinux01 ~]#



위의 useradd명령문에서 사용한 각 옵션들은 다음과 같다.

 

 

 

 

 

 -d /home/sspark2 : 홈디렉토리 위치를 /home/sspark2로 지정함.


 -u 2000          : UID
2000으로 지정함.


 -s /bin/sh      : sspark2
사용자가 기본으로 사용할 쉘종류를 본쉘로 지정함.


 -c ParkSungSoo   :
계정사용자의 간단한 코멘트문(주로 이름이나 사무실명등을 지정함)


 -e 2023-12-31    : sspark2
사용자의 계정사용 종료일자를 2011 12 31일로 지정함.


 -p 88888888      : sspark2
사용자의 기본 패스워드를 88888888로 지정함.


 sspark2          :
생성할 계정명(sspark2)을 지정함

 

 

 

, 그럼 위와 같이 생성하였다면 이제 생성된 결과를 확인해보도록 하겠다.

 

 

 

 먼저 /etc/passwd파일과 /etc/shadow파일, 그리고 /etc/group파일에 대한 sspark2의 정보들이다.

 

 

 

 

 

[root@RockyLinux01 ~]# grep sspark2 /etc/passwd

sspark2:x:2000:2000:ParkSungSoo:/home/sspark2:/bin/sh

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# grep sspark2 /etc/shadow

sspark2:88888888:19529:0:99999:7::19722:

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# grep sspark2 /etc/group

sspark2:x:2000:

[root@RockyLinux01 ~]#



그리고 다음은 sspark2의 홈디렉토리이다.

 

 

 

 

 

[root@RockyLinux01 ~]# ls -al /home/sspark2

합계 16

drwx------  4 sspark2 sspark2 111  6 21 15:07 .

drwxr-xr-x. 8 root    root     93  6 21 15:07 ..

-rw-r--r--  1 sspark2 sspark2  18  1 24 07:42 .bash_logout

-rw-r--r--  1 sspark2 sspark2 141  1 24 07:42 .bash_profile

-rw-r--r--  1 sspark2 sspark2 492  1 24 07:42 .bashrc

drwxr-xr-x  4 sspark2 sspark2  39  4 28 15:57 .mozilla

-rw-r--r--  1 sspark2 sspark2 658  5 15  2022 .zshrc

drwxr-xr-x  2 sspark2 sspark2  24  6 14 15:24 public_html

[root@RockyLinux01 ~]#

 

 

 

, 이쯤되면 useradd를 이용하여 다양한 방법으로 계정을 생성할 수 있다는 것을 알았을 것이다.

 

 

 

 이번에는 리눅스의 계정을 생성하는 주위 환경파일들에 대해 설명해보도록 하겠다.

 

 

 

 

 

그리고 다음과 같은 방법으로 sspark1 사용자를 생성해 보았다.

 

 

 

 

 

[root@RockyLinux01 ~]# useradd -d /home/sspark1 -u 6000 -s /bin/bash ssaprk1

[root@RockyLinux01 ~]#

 

 

 

, 위의 예는 홈디렉토리위치를 /home/sspark1로 지정(-d /home/sspark1)하였고, UID 600으로 지정(-u 6000)하였으며, 기본사용쉘을 Bash Shell로 지정(-s /bin/bash)하여 sspark1이라는 사용자를 생성하였다.

 

 

 

  , 간단히 정리하면 다음과 같다.

 

 

 

 

 

 -d /home/sspark1 : 홈디렉토리 위치를 /home/sspark1로 지정함.


 -u 6600           : UID
600으로 지정함.


 -s /bin/bash      :
사용할 기본쉘을 Bash Shell로 지정함.


 sspark1          :
생성할 계정명으로 sspark1을 지정함.

 

 

 

다음은 위의 결과를 확인한 것이다.

 

 

 

 

 

[root@RockyLinux01 ~]# grep ssaprk1 /etc/passwd

ssaprk1:x:6000:6000::/home/sspark1:/bin/bash

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# grep ssaprk1 /etc/group

ssaprk1:x:6000:

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# ls -al /home/sspark1

합계 16

drwx------  4 ssaprk1 ssaprk1 111  6 21 15:09 .

drwxr-xr-x. 9 root    root    108  6 21 15:09 ..

-rw-r--r--  1 ssaprk1 ssaprk1  18  1 24 07:42 .bash_logout

-rw-r--r--  1 ssaprk1 ssaprk1 141  1 24 07:42 .bash_profile

-rw-r--r--  1 ssaprk1 ssaprk1 492  1 24 07:42 .bashrc

drwxr-xr-x  4 ssaprk1 ssaprk1  39  4 28 15:57 .mozilla

-rw-r--r--  1 ssaprk1 ssaprk1 658  5 15  2022 .zshrc

drwxr-xr-x  2 ssaprk1 ssaprk1  24  6 14 15:24 public_html

[root@RockyLinux01 ~]#

 

 

 

이렇게 옵션을 직접 지정하면 디폴트값보다 우선하여 적용된다는 것을 알아야 한다.

 

 

 

 다음의 예는 좀 더 다양한 옵션을 사용하여 계정을 생성한 예이다.

 

 

 

 

 

이번에는 useradd를 이용하여 사용자가 원하는 조건에 맞는 새로운 계정을 생성하는 방법에 대해서 보도록 하겠다.

 

 

 

 조건은 다음과 같다.

 

 

 

 

 

- 사용자ID      : bible9

 

- UID               : 7000

 

- 소속그룹 GID            : 5000, 100

 

- 홈디렉토리              : /usr/bible9

 

- 로그인쉘                : /bin/bash

 

- 계정사용종료일          : 2023 11 30

 

- 패스워드 허용 유효일자   : 10

 

 

위의 조건에 맞는 새로운 계정을 생성하면 다음과 같다.

 

 

 

[root@RockyLinux01 ~]# useradd -u 7000 -G 5000,100 -d /usr/bible9 -e 2023-12-31 -s /bin/bash -f 10 bible9

[root@RockyLinux01 ~]#

 

 

 

위의 예를 보면 “-G 5000, 100”이라는 설정이 있는데 이것은 생성되는 bible9라는 사용자는 기존에 존재하고 있는 GID 5000인 그룹과 GID 100인 그룹에 각각 소속되게 된다.

 

 

 

 물론 bible9라는 새로운 그룹도 별도로 생성된다.

 

 

 

 

 

다음은 위와 같이 bible9라는 새로운 계정을 생성한 후에 생성된 bible9계정의 설정내용을 확인한 것이다.

 

 

 

 먼저 /etc/passwd파일의 내용이다.

 

 

 

 보다시피 UID7000으로 bible9가 생성되어 있다.

 

 

 

[root@RockyLinux01 ~]# grep bible9 /etc/passwd

bible9:x:7000:7000::/usr/bible9:/bin/bash

[root@RockyLinux01 ~]#

 

그리고 다음은 /etc/group파일의 설정내용이다.

 

 

 

 보는 바와 같이 bible9 계정은 GID 5000bible2그룹과 GID100users그룹에 각각 소속되어있고, 또한 GID7000 bible9라는 새로운 그룹도 생성되어 있다.

 

 

 

[root@RockyLinux01 ~]# grep bible9 /etc/group

users:x:100:bible9

bible2:x:5000:bible9

bible9:x:7000:

[root@RockyLinux01 ~]#

 

 

그리고 다음은 /etc/shadow파일의 설정내용이다.

 

 

 

 bible9라는 계정의 aging정보가 등록되어있다.

 

 

 

 

 

[root@RockyLinux01 ~]# grep bible9 /etc/shadow

bible9:!!:19529:0:99999:7:10:19722:

[root@RockyLinux01 ~]#

 

 

그리고 다음은 bible9의 홈디렉토리를 확인한 것이다.

 

 

 

 홈디렉토리를 /usr/bible9로 지정하였기 때문에 그 위치에 홈디렉토리가 생성되고 또한 초기환경설정 파일도 생성되어 있다.

 

 

 

 

[root@RockyLinux01 ~]# ls -al /usr/bible9

합계 16

drwx------   4 bible9 bible9 111  6 21 16:18 .

drwxr-xr-x. 13 root   root   158  6 21 16:18 ..

-rw-r--r--   1 bible9 bible9  18  1 24 07:42 .bash_logout

-rw-r--r--   1 bible9 bible9 141  1 24 07:42 .bash_profile

-rw-r--r--   1 bible9 bible9 492  1 24 07:42 .bashrc

drwxr-xr-x   4 bible9 bible9  39  4 28 15:57 .mozilla

-rw-r--r--   1 bible9 bible9 658  5 15  2022 .zshrc

drwxr-xr-x   2 bible9 bible9  24  6 14 15:24 public_html

[root@RockyLinux01 ~]#

 

 

 

useradd의 환경을 설정하는 “useradd -D” 실무활용

 

 

 

이번에 설명할 내용은 useradd 명령어의 기본적용값을 설정하는 방법에 대한 것이다.

 

 

 

 , 이것은 useradd의 일부분이지만 필자가 useradd명령어와 "useradd -D"명령어를 굳이 구분하여 별도로 설명하는 것은 두 명령어의 용도에 분명한 차이가 있기 때문이며 구분하는 것이 실무적인 관점에서 더 큰 도움이 되기 때문이다.

 

 

 

 useradd -D 명령어는 useradd의 기본환경을 설정하는 명령어이다.

 

 

 

 


, useradd로 생성되는 기본 홈디렉토리의 위치를 변경하거나, 기본그룹을 설정하거나, 기본유효일자를 지정하거나, 기본사용쉘을 지정하는 등의 설정을 할 수 있다.

 

 

 

 , "useradd -D" useradd의 실행으로 설정되는 기본값들을 설정하는 명령어라고 정의 할 수 있다.

 

 

 

  

 

파일의 관점에서 구체적으로 설명하자면, useradd가 실행될 때 홈디렉토리의 위치, 기본사용쉘, 기본그룹지정 등의 설정을 하게 되는데 이 설정 값이 /etc/default/useradd 라는 파일에 저장되어 있다.

 

 

 

 , 결론적으로 "useradd -D"는 이 파일의 값을 변경하여 useradd의 기본설정값이 바뀌도록 한다.

 

 

 

 그래서 “useradd -D”의 이름이 “Changing the default values”이다.

 

 

 

 

 

먼저 아무런 옵션없이 "useradd -D"라고만 하면 현재 설정된 값들을 보여준다.

 

 

 

  , useradd가 실행되었을 때에 “useradd -D”의 결과로 확인되는 내용에 준하여 생성된다.

 

 

 

  아래 결과를 보자.

 

[root@RockyLinux01 ~]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

[root@RockyLinux01 ~]#

 

 

 

이 결과는 /etc/default/useradd의 내용과 동일한 내용이다.

 

 

 

 , "useradd -D" /etc/default/useradd"의 설정 값을 바꾸는 역할을 한다.

 

 

 

이 결과의 실질적인 의미는 다음과 같다.

 

 

 

useradd로 새로운 계정이 생성되면  생성되는 사용자의 홈디렉토리는 /home내에 생성되며, 기본사용쉘은 /bin/bash이며 /etc/skel에 위치한 초기화 파일들이 새로 생성되는 사용자의 홈디렉토리에 복사된다는 것을 각각 의미한다.

 

 

 

 

 

결론적으로 “useradd -D” /etc/default/useradd파일의 값을 변경한다.

 

 

 

"useradd -D"/etc/default/useradd 파일의 값을 변경하므로 먼저 /etc/default/useradd파일의 내용부터 살펴보겠다.

 

 

 

  앞서 설명했듯이 "useradd -D"는 이 파일의 내용을 변경하여  useradd의 기본설정 값이 바뀌도록 한다.

 

 

 

 

다음은 /etc/default/useradd파일의 기본 내용이다.

 

 

 

 , 아래의 설정은 useradd의 기본값들이다.

 

 

 

[root@RockyLinux01 ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

[root@RockyLinux01 ~]#

 

 

 

위에서 홈디렉토리의 기본위치가 /home으로 되어 있다.

 

 

 

  이를 /usr로 변경하려면 다음과 같이 하면 된다.

 

 

 

 

 

[root@RockyLinux01 ~]# useradd -D -b /usr

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/usr

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

[root@RockyLinux01 ~]#

 

 

 

 

위와같이 /etc/default/useradd파일이 변경된 후에는 useradd명령어로 새로 생성되는 사용자(ID)들의 홈디렉토리는 /home/ID가 아니라 /usr/ID가 된다.

 

 

 

  예를들어 sspark5라는 계정사용자가 useradd에 의해 생성이 되면(useradd sspark5), sspark5의 홈디렉토리는 /usr/sspark5가 된다는 의미이다.

 

 

 

 

 

useradd명령어로 새로운 사용자가 생성되면 기본적으로 사용하는 쉘은 /bin/bash이다.

 

 

 

 이는 리눅스 설치초기환경으로써 기본사항이다.

 

 

 

  하지만 useradd로 생성되는 모든 사용자들이 기본으로 사용할 쉘을 다른 쉘로 지정하고자 한다면 다음과 같이 하면 된다.

 

 

 

 .

 

, useradd로 생성되는 새로운 사용자가 기본적으로 사용할 쉘(로그인쉘)을 지정하려면 아래와 같이 “useradd -D” -s옵션을 사용하여 지정하기 바란다.

 

 

 

 

 

[root@RockyLinux01 ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/usr

INACTIVE=-1

EXPIRE=

SHELL=/bin/sh

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

[root@RockyLinux01 ~]#



 

, 위의 예는 useradd로 생성되는 새로운 사용자의 기본쉘을 /bin/sh(본쉘)로 지정한 것이다.

 

 

 

 기본 사용쉘이 /bin/bash에서 /bin/sh로 변경된 것을 확인하기 바란다.

 

 

 

 이후부터는 useradd로 새롭게 생성되는 모든 계정들의 기본사용쉘은 /bin/sh가 된다.

 

 

 

 

이번에는 useradd로 새로 생성되는 계정이 기본적으로 사용할 그룹을 변경해보도록 하자. 리눅스에서 새로 생성되는 사용자들은 기본적으로 GID 100 users라는 그룹에 자동 소속된다.

 

 

 

 하지만, “useradd -D” -g옵션을 사용하여 GID를 지정하면 useradd로 생성되는 새로운 계정들의 소속될 초기그룹(initial group)을 변경하게 된다.

 

 

 

 다음 예는 GROUP이라는 항목의 값을 10(wheel)에서 510으로 변경한 예이다.

 

 

 

[root@RockyLinux01 ~]# useradd -D -g 10

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=10

HOME=/usr

INACTIVE=-1

EXPIRE=

SHELL=/bin/sh

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

[root@RockyLinux01 ~]#

 

 

 

당연한 얘기지만 지정한 10라는 GID는 반드시 존재해야 한다.

 

 

 

 이를 확인해 보려면 /etc/group파일을 보면 된다.

 

 

 

 그리고 변경된 결과를 확인하기 위하여 /etc/default/useradd 파일을 확인하였다.

 

 

 

 그 결과 GROUP항목의 값이 100에서 10으로 변경 되어있다.

 

 

 

 이 이후로 새로 생성되는 사용자가 기본적으로 속하게 될 그룹은 GID 100이 아닌 GID 10 그룹이 될 것이다.

 

 

 

 

 

다음은 계정사용 종료일을 지정하는 예이다.

 

 

 

  아래와 같이 "useradd -D"명령어에 -e옵션을 사용하여 "YYYY-MM-DD"형식으로 날짜를 입력하면 useradd로 새로 생성되는 사용자의 계정 사용종료일을 지정할 수 있다.

 

 

 

 

 

[root@RockyLinux01 ~]# useradd -D -e 2023-12-31

[root@RockyLinux01 ~]#

[root@RockyLinux01 ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=10

HOME=/usr

INACTIVE=-1

EXPIRE=2023-12-31

SHELL=/bin/sh

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

[root@RockyLinux01 ~]#

 

, 위의 명령 이후 부터는 useradd로 새로 생성되는 사용자들은 모두 2023 12 31일까지만 계정을 사용할 수 있다.

 

 

 

 useradd로 생성되는 이후의 모든 계정들은 계정 사용종료일이 2023 12 31일까지로 설정된다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,038 명
  • 현재 강좌수 :  35,818 개
  • 현재 접속자 :  97 명