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

새로운 사용자 계정생성을 위한 useradd 실무 강좌

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

제목 : 새로운 사용자 계정생성을 위한 useradd 실무 강좌



 

1. 이번 강좌에서는 리눅스 서버에서 새로운 사용자를 생성하기 위한 여러가지 실무적인 방법들을 배워보도록 하겠습니다.

 

2. 리눅스에서 새로운 사용자를 생성하기 위해서는 useradd라는 명령어를 사용합니다. 먼저 useradd의 기초적인 내용부터 살펴보도록 하겠습니다.

 

3. 리눅스의 useradd명령어는 새로운 사용자 계정을 생성할 때 사용하는 명령어입니다.  useradd를 이용하여 계정사용자를 생성할 수도 있고, 메일사용자를 생성할 수도 있습니다.

 

4. , useradd는 리눅스 시스템 사용을 원하는 다양한 계정을 생성하고자 할 때 사용하는 리눅스 관리자용 명령어입니다. 따라서 useradd는 관리자용 명령어이므로 일반사용자들은 사용할 수 없는 명령어입니다.

 

5. 그리고 이번 강좌에서는 새로운 계정을 생성하기 위하여 useradd를 실행하였을 경우에  시스템내부적으로 어떤 작업들이 이루어지는가를 이해하기 위하여 “useradd의 실무메커니즘이라는 소강좌로 설명을 하고 있습니다. 실제 서버를 관리하시는 분들이라면 반드시 깊이있게 공부하셔야하는 부분이므로 주의깊게 학습하시기 바랍니다.

 

6. 이번 강좌에서 설명하고 있는 useradd명령어의 실무메커니즘을 이해하신다면 리눅스 계정생성에 대해서는 거의 완벽하게 공부하신 것과 마찬가지입니다.

 

7. 참고로 리눅스에서 useradd adduser명령어가 어떻게 다르냐고 질문하시는 분들이 있습니다. 이에 대한 답을 드리기 위하여 아래 ls명령어의 예를 보시기 바랍니다. 


c437ca611387344814940cb4f97d09ce_1646638906_7143.png
 

 

8. 화면의 예를 보시면 아시겠지만 adduser명령어는 useradd명령어로 링크되어 있는 것에 불과합니다.  따라서 실제로 adduser명령어와 useradd명령어는 이름만 다른 동일한 명령어라고 생각하시면 됩니다.

 

9. , 유닉스나 솔라리스등에서는 useradd대신에 adduser라는 명령어를 사용하기 때문에 리눅스에서는 다른 운영체제와의 호환을 위하여 useradd adduser를 함께 사용할 수 있는 것입니다.

 

10. , 그럼 이제 리눅스 서버관리자가 해야하는 계정생성 관련업무에는 어떤 것들이 있는가에 대해서 알아보도록 하겠습니다.


 

  /etc/passwd 파일에 사용자의 계정(ID 및 패스워드)생성
 
/etc/shadow 파일에 계정 패스워드 등록
 
/etc/group파일에 사용자의 그룹생성
 
/home에 사용자의 홈디렉토리 생성
 
FTP사용을 위한 FTP사용 환경설정
 
ㅇ 메일사용을 위한 메일환경설정
 
ㅇ 사용자의 로그인정보 및 환경설정
 
ㅇ 사용자의 디렉토리 및 파일 소유권 변경 및 확인
 
DB 사용을 위한 환경설정 및 응용프로그램사용을 위한 환경설정
 
ㅇ 기타 응용 소프트웨어 사용을 위한 설정등

 

11. 화면에 나타낸 이들 업무외에도 여러가지 작업들이 있지만, 서버관리자는 새로운 계정사용자를 생성하였을 때 기본적으로 이와  같은 작업들을 하게 됩니다. 이들 업무 가운데  계정생성에 관련된 작업을 useradd를 이용하여 수행하게 됩니다.

 

12. , 그럼 이제 useradd의 명령어 사용법에 대해서 알아보도록 하겠습니다.

 

명령어위치 : /usr/sbin/useradd 


  

 

useradd의 사용형식

 

useradd [-c comment][-d 홈디렉토리][-e 종료일자][-f inactive_time]
        [-g
초기그룹명] [-G 그룹명[,...]][-m [-k 초기화파일위치디렉토리] | -M]
        [-p
패스워드][-s 사용쉘] [-u UID [ -o]] [-n] [-r] 계정명

 

useradd의 옵션들

 -c : 대부분 사용자명을 입력하며, finger로 확인하면 보여주는 간단한 사용자설명
      (
코멘트)을 등록한다.
 -d :
생성하는 계정사용자의 홈디렉토리위치지정 (, -d /home/sspark)
 -e :
생성하는 계정의 사용일자 지정(, -e 2004-12-31)
 -f :
생성하는 계정의 유효일자 지정(, -f -30, 앞으로 30일동안 유효한 계정)
 -g :
생성하는 계정의 GID지정 (, -g 1004)
 -G :
생성하는 계정의 추가등록 계정의 그룹명
 -p :
생성하는 계정의 패스워드지정
 -s :
생성하는 계정의 기본 사용쉘 지정
 -u :
생성하는 계정의 UID지정 (, -u 1000)

 

13. useradd에는 이와같은 여러가지 옵션들이 있습니다. , 새로운 계정생성을 하기 위해 useradd를 사용하면서 다양한 목적에 부합되는 계정을 생성하기 위하여 이와같은 다양한 옵션들을 사용합니다.

 

14. 지금까지 useradd명령어에 대한 기본적인 설명과 사용방법에 대해서 알아보았습니다. 이제부터 useradd로 새로운 사용자를 생성하는 실제 예와 실무사용법을 알아보도록 하겠습니다.


 

1. 앞의 예습부분에서 말씀드린바와 같이 useradd를 이용하여 새로운 계정을 생성할 때에는 시스템 내부에 있는 어떤 파일들을 참고하고 어떤 과정을 거쳐서 어떤파일들에 실제로 적용이 되는가에 대해서 알아보도록 하겠습니다.

 

2. , useradd의 첫번째 예를 들어서 useradd의 실행을 지배하고 있는 2개의 파일과 1개의 디렉토리에 대해서 배워보도록 하겠습니다.

 

3. 리눅스 서버관리자라면 초보자라 하더라도 useradd라는 명령어를 사용하여 새로운 사용자를 생성하는 방법은 알고 계실 것이라 생각합니다. 하지만 useradd라는 명령어로 새로운 사용자가 생성이 될 때에 시스템에서는 어떤 작업들이 자동으로 이루어져서 새로 생성되는 사용자의 시스템사용을 하도록 하는가에 대한 정확한 시스템의 실무 메커니즘을 이해하고 계신분은 그다지 많지 않다고 생각합니다.   

 

4. , useradd라는 명령어를 사용하는 방법을 익히는 것도 중요하지만 유능한 서버관리자가 되려면 useradd명령어의 실행으로 서버에서 어떤 작업들이 실제로 이루어지는가를 알아야하며 생성되는 사용자를 위한 시스템환경설정이 어떻게 이루어지는가를 정확하게 알고 있어야 한다고 생각합니다

 

5. 따라서 서버관리자가 useradd라는 명령어를 사용하여 새로운 계정사용자를 생성하였을 경우에 서버내부에서 작업되는 여러가지 실무적인 메커니즘을 설명하고자 합니다.

 

6. 먼저 다음과 같이 useradd명령어를 이용하여 sspark이라는 계정을 생성하였습니다.


  

c437ca611387344814940cb4f97d09ce_1646639006_6983.png
 

7. 그리고 이번에는  새로 생성된 sspark 계정사용자의 패스워드를 설정하기 위하여 "passwd sspark"이라는 명령문을 실행하였습니다.




c437ca611387344814940cb4f97d09ce_1646639037_1579.png
 

8. , 이제 useradd sspark이라는 계정사용자를 생성한 후에 리눅스서버에서 어떤 작업들이 이루어졌는가를 살펴보겠습니다.

 

 

9. sspark계정이 생성되면 /etc/passwd에는 sspark의 기본정보들이 다음과 같이 등록 됩니다.


c437ca611387344814940cb4f97d09ce_1646639063_8489.png
 

10. , /etc/passwd파일의 맨 마지막행에 sspark이라는 계정사용자의 ID,암호필드, UID, GID,이름, 홈디렉토리위치, 사용쉘이 차례대로 등록되어 있음을 알 수 있습니다.

 

11. 그리고 sspark계정이 생성되면 /etc/shadow파일에는 sspark의 암호정보와 계정 aging(발음 : 에이징)정보가 등록이 됩니다.



c437ca611387344814940cb4f97d09ce_1646639086_0644.png
 


12. 그리고, sspark계정이 생성되면 /etc/group파일에는 sspark의 그룹정보가 등록됩니다여기에 등록이 되는 그룹정보는 계정명과 동일한 그룹명과 /etc/passwd파일의 GID번호와 동일한 GID가 생성되어 추가 됩니다.


c437ca611387344814940cb4f97d09ce_1646639110_2488.png
 


13. , sspark의 계정명과 동일한 sspark이라는 그룹명과 GID 506이라는 그룹이 생성되어 /etc/group파일이 등록 되었습니다.

 

14. 그리고 sspark계정이 생성되면 그 계정의 홈디렉토리가 자동생성됩니다.  다음은 sspark의 홈디렉토리를 나타낸 것입니다.  홈디렉토리는 /etc/passwd sspark의 홈디렉토리위치에 생성이 됩니다.


 

c437ca611387344814940cb4f97d09ce_1646639134_2903.png
 


15. 이번 강좌의 뒷부분에서도 말씀드리겠지만, /home/sspark디렉토리에 존재하는 위의 파일들은 /etc/skel/디렉토리내에 존재하는 파일들이 모두 복사되어 들어간 것입니다

 

16. 그리고 sspark계정이 생성이 되면 /var/spool/mail디렉토리에는 계정명과 동일한 sspark파일이 생성이 되는데, 이는 메일사용을 위한 파일입니다.  , 도착한 메일을 보관하기위한 사용자 메일파일입니다.


 

c437ca611387344814940cb4f97d09ce_1646639157_4463.png
 


17. 지금까지 살펴본 내용은 "useradd sspark"이라는 명령문을 실행하여 sspark이라는 계정을 새로 생성하였을 때에 시스템 내부에 어떤 파일들이 변화가 발생하는가를 확인한 것입니다.


 


 

1. 앞의 설명에서는 useradd라는 명령어를 이용하여 sspark이라는 새로운 계정을 생성하였을 때에 시스템 내부적으로 어떤 파일과 디렉토리들이 생성이 되는가에 대해서 알아보았습니다.

 

2. 이번에는 useradd의 실행환경을 지배하고 있는 2가지 파일과 1가지 디렉토리에 대해서 알아보도록 할 것입니다.

 

3. 여기서 설명하는 두가지 파일과 1가지 디렉토리의 내용에 대한 정확한 이해를 하셔야만 useradd를 이용한 계정생성 실무를 보다 정확하게 하실 수 있습니다.

 

4. , useradd명령어의 실행환경에 영향을 미치는 2개의 파일과 1개의 디렉토리는 다음과 같습니다.


 

/etc/login.defs 파일

/etc/default/useradd 파일

/etc/skel 디렉토리

 

5. , useradd로 특정 계정을 새로 생성하였을 때에는 이들 파일과 디렉토리내에 존재하는 각 설정들의 내용에 따라서 서로 다른 결과가 발생을 하게 됩니다. 따라서 이 파일들과 디렉토리의 정확한 이해를 하셔야하며 지금 부터 살펴보도록 하겠습니다.

 

6. 먼저 useradd /etc/login.defs라는 파일의 내용에 영향을 받고 있습니다. /etc/login.defs파일의 내용은 다음과 같습니다.


 

c437ca611387344814940cb4f97d09ce_1646639200_4593.png
 


 

7.  , /etc/login.defs파일은 useradd가 새로운 계정을 생성할 때에 반드시 참조하는 파일로서 이와 같은 내용으로 구성되어 있습니다.

 

8. /etc/login.defs파일의 각 행의 의미는 다음과 같습니다.

 

  . MAIL_DIR   ==> 메일 디렉토리 지정
  . PASS_MAX_DAYS   ==>
패스워드 변경없이 사용할 수 있는 최대일자
  . PASS_MIN_DAYS   ==>
패스워드 변경없이 사용할 수 있는 최소일자
  . PASS_MIN_LEN    ==>
패스워드의 최소바이트 수
  . PASS_WARN_AGE   ==>
패스워드 만료기간이 끝나기 몇일전 부터 알려줄 것인가
  . UID_MIN         ==>
생성할 수 있는 UID 시작번호
  . UID_MAX         ==>
생성할 수 있는 최대 GID 번호
  . GID_MIN         ==>
새로 생성되는 그룹의 GID 시작번호
  . GID_MAX         ==>
새로 생성되는 그룹에서 지정 할 수 있는 최대 GID번호
  . CREATE_HOME     ==>
홈디렉토리를 생성할 것인가의 여부

 

9. 이 파일의 내용을 잘 보시면 useradd가 어떤 환경으로 실행이 되는가에 대한 자세한 설정들이 들어있다는 것을 아실 수 있습니다.

 

10. 방금 확인하신 /dev/login.defs 파일과 함께 useradd의 실행환경을 결정하는 /etc/default/useradd라는 파일이 있습니다. 이 파일의 내용을 또한 살펴보도록 하겠습니다.

 

11. 본 화면은 /etc/default/useradd파일의 내용입니다.


 

c437ca611387344814940cb4f97d09ce_1646639222_7438.png
 


12. /etc/default/useradd파일을“useradd의 기본파일이라고 하며, 보시다시피 useradd로 계정 생성시에 어떤 환경과 어떤 파일들을 참조하여 새로운 계정을 생성할 것인가에 대하여 정의되어 있는 파일입니다.

 

13. 이 파일의 각 행의 의미들은 다음과 같습니다.

 


  GROUP       ==> 기본등록 그룹의 GID
 
HOME        ==> 생성될 홈디렉토리 위치
 
INACTIVE    ==> 패스워드 종료일 이후의 유효(기간)여부 설정(0, -1, 1이상의 숫자)
 
EXPIRE      ==> 계정 종료일자지정
 
SHELL       ==> 기본사용쉘 지정
 
SKEL        ==> 홈디렉토리에 복사할 기본환경파일위치

 

14. 따라서 /etc/default/useradd파일을 수정하게 되면 useradd의 실행시에 수정된 내용이 적용이 됩니다. 따라서 새로운 계정을 생성할 때에 다양한 방법으로 계정을 생성하려면 이 파일을 수정한 후에 useradd를 실행하면 됩니다.

 

15. 참고로 이 파일을 수정하는 방법은 두가지가 있습니다. "useradd -D"를 실행하여 변경하는 방법이 있으며 또하나는 vi로 이 파일을 직접 오픈하여 수정하는 방법이 그것입니다대부분의 관리자들은 vi를 이용하여 이 파일을 직접 수정하여 사용하는 방법을 이용합니다.

 

16. 이번에는 useradd의 실행에 영향을 미치는 /etc/skel디렉토리에 대해서 알아보도록 하겠습니다.

 

17. 앞의 예에서 "useradd sspark"이라는 명령문을 실행하여 sspark이라는 새로운 계정을 생성하면 /home/sspark이라는 홈디렉토리가 생성되며, 이 디렉토리에는 .()으로 시작하는 여러가지 파일들이 존재한다는 것을 보셨을 것입니다.

 

18. , .()으로 시작하는 이런 파일들은 sspark사용자가 이 서버로 로그인 할 때에 매번 읽어서 적용되는 파일들로서 서버사용환경을 설정하기 위한 매우 중요한 파일들입니다.

 

19. 여기서 중요한 것은 .()으로 시작하는 이들 파일들은 /etc/skel/디렉토리에 존재하는 모든 파일들이 /home/sspark디렉토리로 복사되었다는 점입니다.

 

20. , useradd로 새로운 계정을 생성하게 되면 /etc/skel디렉토리내에 존재하는 모든 파일과 디렉토리들이 생성되는 계정의 홈디렉토리로 복사되어 들어가게 됩니다.

 

21. 다음은 /etc/skel디렉토리내의 파일들을 ls명령어로 확인한 것입니다


c437ca611387344814940cb4f97d09ce_1646639257_927.png
 


 

22. 여러분들께서 확인하셔야 할 내용은 새로 생성된 sspark계정의 홈디렉토리인 /home/sspark디렉토리내의 파일들과 /etc/skel디렉토리내의 파일들이 모두 동일하다는 것입니다.

 

23. 여기서 우리는 몇가지 사실을 알아 두면 서버관리업무에 큰 도움이 된다는 것을 알 수 있습니다.

 

24. , 첫번째로는 /etc/skel디렉토리내에 존재하는 .()으로 시작하는 각 파일들의 내용을 적당히 수정하면 그 내용이 새로 생성되는 모든 사용자들에게 적용이 된다는 점입니다.

 

25. 예를들어 /etc/skel/.bash_profile이라는 파일에는 각 사용자들이 사용할 명령어 PATH(발음: 패스)가 설정되어 있습니다. 따라서 /etc/skel/.bash_profile내에서 이 PATH값을 변경하므로서 새로 생성되는 사용자들의 모든 PATH를 일괄적으로 적용할 수 있다는 점입니다. 물론 이외에도 /etc/skel디렉토리에 존재하는 .bashrc파일 또는 .bash_logout파일등을 수정하게 되면 새로 생성되는 모든 사용자들에게 동일한 효과를 적용할 수 있다는 점을 꼭 기억해 두시기 바랍니다.

 

26. 둘째로 /etc/skel디렉토리내에 새로운 디렉토리와 새로운 파일을 추가로 생성해 둔다면 이들 파일과 디렉토리들까지 모두 함께 새로 생성되는 계정사용자의 홈디렉토리로 복사된다는 점입니다.

 

27. 따라서 만약 여러분들께서 리눅스를 호스팅서버로 사용하고 계신다면 호스팅 신규사용자들에게 셋팅해야하는 홈페이지디렉토리(public_html)와 홈페이지 초기파일 index.html파일을 미리 만들어 두면 useradd명령어로 계정을 생성할 때에 초기 홈페이지디렉토리인 public_html디렉토리와 초기 홈페이지 파일 index.html파일을 자동으로 생성할 수 있다는 점입니다.

 

28. , /etc/skel디렉토리내에 public_html 디렉토리를 생성해 두시고 이 디렉토리내에 호스팅 신규셋팅완료 및 사용법안내파일(index.html)을 생성해 두신다면 useradd명령어로 사용자의 계정을 생성하면서 동시에 자동복사되므로 굉장히 편리하게 호스팅사용자 신규셋팅작업을 할 수 있습니다.

 

29. 지금까지 살펴보신 내용은 useradd명령어를 실행할 때에 새로운 계정이 생성되는 환경을 지배하는 2개의 파일, /etc/login.defs파일과 /etc/default/useradd파일, 그리고 /etc/skel디렉토리에 대해서 살펴보았습니다 .

 

30. 결론적으로 계정생성을 다른 방법으로 하고자 하신다면 이 파일들과 디렉토리의 내용을 수정하시면 굉장히 융통성있는 계정생성 실무방법을 알게 되는 것입니다.


 

 

1. 앞의 설명에서는 useradd로 새로운 계정사용자를 생성하는 기본적인 방법과 그리고 useradd로 새로운 계정사용자를 생성하였을 때에 어떤 파일들과 디렉토리들이 생성되고 변경되는가에 대해서 알아보았으며 또한 useradd의 실행에 영향을 미치는 /etc/login.defs파일과 /etc/default/useradd파일, 그리고 /etc/skel디렉토리의 성격과 활용방법에 대해서 알아보았습니다.

 

2. 이번에는 useradd를 이용하여 다양한 계정생성 방법에 대해서 알아보도록 하겠습니다.

 

3. 먼저, useradd명령어를 이용하여 sspark1이라는 계정사용자를 다음과 같이 새로 생성 하였습니다.


 

c437ca611387344814940cb4f97d09ce_1646639294_8609.png
 


 

4. 이 명령어는 홈디렉토리위치를 /home/sspark1로 지정(-d /home/sspark1)하였고, UID 600으로 지정(-u 600)하였으며, 기본사용쉘을 C Shell로 지정(-s /bin/csh)하여 sspark1이라는 사용자를 생성하였습니다, 간단히 정리하면 다음과 같습니다.

 

5. 이번에 사용한 useradd의 각 옵션들은 다음과 같은 의미가 있습니다.

 


 -d /home/sspark1 ==> 홈디렉토리 위치를 /home/sspark1로 지정함.
-u 600            ==> UID600으로 지정함.
-s /bin/csh       ==> 사용할 기본쉘을 C Shell로 지정함.
sspark1           ==> 생성할 계정명으로 sspark1을 지정함.

 

6. 이와 같이 생성하고 난 후의 결과를 보도록 하겠습니다. , /etc/passwd파일의 내용과 /etc/group파일의 내용, 그리고 /home/sspark1이라는 홈디렉토리의 내용을 살펴본 것입니다


c437ca611387344814940cb4f97d09ce_1646639325_2735.png
 

 

7. 이렇게 옵션을 직접 지정하면 기본설정값에 우선하여 적용된다는 점을 알아두시기 바랍니다.

 

8. 이번에는 좀 더 다양한 옵션을 사용하여 계정을 생성한 예입니다.


 

c437ca611387344814940cb4f97d09ce_1646639348_9141.png
 

 

9 . 이번 예에서 사용한 옵션을 간단히 설명하면 다음과 같습니다.

 


  -c PARK            ==> 계정사용자의 간단한 설명
 
-e 2007-12-12      ==> 계정사용 종료일자
 
-d /home/sspark2   ==> 홈디렉토리 위치
 
-u 601             ==> UID 601로 지정
 
-s /bin/ksh        ==> 사용할 기본쉘을 Korn Shell로 지정
 
-p 12345           ==> 패스워드를 12345로 지정
 
sspark2            ==> 생성할 계정명

 

10. 위와 같이 지정한 다음 생성된 내용을 간단히 확인한 것입니다.


c437ca611387344814940cb4f97d09ce_1646639385_1887.png
 

11. 이와 같이 useradd의 다양한 옵션을 사용하여 새로 생성되는 계정사용자의 사용환경을 목적에 맞게 생성할 수 있다는 것을 알 수 있었습니다.


  

 

1. 이번에는 useradd의 실행환경을 결정할 수 있는 "useradd -D"에 대해서 알아보도록 하겠습니다.

 

2. "useradd -D"useradd 명령어의 일부분이지만 useradd명령어와 "useradd -D"명령어를  구분하여 별도로 설명하는 이유는 "useradd" "useradd -D"의 용도에는 분명한 차이가 있기 때문입니다.

 

3. 한마디로 "useradd -D" useradd의 기본환경을 설정하는 명령어입니다. 좀 더 구체적으로 말씀드린다면 이 강좌의 앞부분에서 설명드린 /etc/default/useradd 파일의 내용을 변경하는 명령어라고 할 수 있습니다.

 

4. , "useradd -D"를 이용하여 /etc/default/useradd파일의 내용이 변경되고 변경된 /etc/default/useradd파일로 인하여 useradd명령어에 의해 새로 생성되는 모든 계정사용자들의  홈디렉토리의 위치를 변경하거나, 기본적으로 소속될 그룹을 지정하거나, 계정사용 종료일자를 지정하거나, 기본사용쉘을 지정하는 등의 작업을 할 수 있습니다.

 

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

 

6. , "useradd -D"를 파일의 관점에서 구체적으로 설명하자면, useradd로 새로운 계정사용자를 생성할 때  새로 생성되는 계정사용자의 홈디렉토리의 위치, 기본사용쉘, 기본그룹지정등의 설정을 하게 되는데 이 설정값이 /etc/default/useradd 라는 파일에 저장이 되어 있으며 "useradd -D"는 이 파일의 값을 변경하여 useradd의 기본설정값이 바뀌도록 한다는 것입니다.

 

7. "useradd -D"의 사용형식은 다음과 같습니다.

 

 

useradd -D [-g 기본소속그룹] [-b 홈디렉토리] [-f default_inactive] [-e  계정종료일] [-s  기본사용쉘]

 

-g  ==> 기본소속 그룹 지정

-b  ==> 홈디렉토리 지정

-e  ==> 계정종료일자 지정

-s  ==> 기본으로 사용할 쉘종류 지정

 

8. 먼저 "useradd -D"의 기본 사용법을 보겠습니다.


  

c437ca611387344814940cb4f97d09ce_1646639449_3469.png
 

 

9. 예와 같이 아무런 옵션없이 "useradd -D"만 실행하면 현재 설정된 값들을 보여줍니다.

 

10. 다시한번 말씀드리지만 "useradd -D"의 결과로 출력되는 내용은 /etc/default/useradd파일의 내용과 동일한 것입니다. , "useradd -D"의 실행결과는 /etc/default/useradd파일의 내용을 그대로 가져와서 보여주는 것입니다.

 

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


 

1. 앞의 예에서 보았듯이 "useradd -D" /etc/default/useradd 파일의 값을 변경하므로 먼저 /etc/default/useradd파일의 내용부터 살펴 보겠습니다. 앞서도 말씀드렸지만 "useradd -D"는 이 파일의 내용을 변경하여  useradd명령어의 실행환경을 바뀌도록 합니다.

 

2. /etc/default/useradd파일의 내용을 먼저 확인해 보도록 하겠습니다.

 

c437ca611387344814940cb4f97d09ce_1646639477_4566.png
 


3. 확인하신 바와 같이 홈디렉토리의 기본위치가 /home으로 되어 있습니다. "useradd -D"를 이용하여 HOME변수의 값을 /usr로 변경해 보도록 하겠습니다.


  

c437ca611387344814940cb4f97d09ce_1646639502_8093.png
 

4. "useradd -D" 다음에 b옵션을 사용하고 그 뒤에 디렉토리명을 지정하면 지정된 디렉토리명이 /etc/default/useradd파일의 HOME변수값으로 지정됩니다. 이 명령어를 실행한 후에 다시한번 /etc/default/useradd파일의 내용을 확인해 보았습니다.


  

c437ca611387344814940cb4f97d09ce_1646639525_013.png
 

5. 결론적으로 이렇게 변경이 된 후에는 useradd로 새로 생성되는 사용자(ID)들의 홈디렉토리는 /home/ID가 아니라 /usr/ID가 됩니다.  

 

6. 예를들어 "useradd sspark5"라는 명령문을 실행하면 sspark5라는 계정사용자의 홈디렉토리는 /usr/sspark5가 된다는 것입니다.


 

1. 이번에는 "useradd -D"를 이용하여 useradd명령어에 의해 생성되는 모든 새로운 사용자의 기본사용쉘을 지정해 보도록 하겠습니다.

 

2. useradd명령어로 새로운 사용자가 생성되면 기본적으로 사용하는 쉘은 /bin/bash입니다. 이는 리눅스 설치초기환경으로서 기본사항입니다. 하지만 useradd로 생성되는 모든 사용자들이 기본으로 사용할 쉘을 다른 쉘로 지정하고자 하신다면 다음과 같이 하면 됩니다.

 

3. , useradd로 생성되는 새로운 사용자가 기본적으로 사용할 쉘을 지정하시려면 “useradd -D” 다음에  -s옵션을 사용하고 쉘종류를 지정하면 됩니다.


 

c437ca611387344814940cb4f97d09ce_1646639553_4412.png
 


4. , 이번 예에서는 useradd명령어에 의해 새로 생성되는 사용자들의 기본사용쉘 종류를 /bin/bash(발음 : 빈베쉬쉘) 에서 /bin/csh(발음 : 빈시쉘)로 사용하도록 지정한 것입니다.

 

5. , 결과를 확인하기 위하여 다시한번 /etc/default/useradd파일의 내용을 cat명령어로 확인해 보았습니다.


 

c437ca611387344814940cb4f97d09ce_1646639578_1785.png
 

6. 기본 사용쉘이 /bin/bash에서 /bin/csh로 변경된 것을 확인하기 바랍니다. 이후부터  useradd명령어에 의해 새롭게 생성되는 모든 계정들의 기본사용쉘은 /bin/csh(발음 : 빈시쉘)이 됩니다.

 

7. 리눅스에서 새로 생성되는 모든 사용자들은 기본적으로 GID 100 users라는 그룹에 자동소속됩니다. 하지만, “useradd -D” -g옵션을 사용하여 기본적으로 소속될 그룹을 변경할 수 있습니다.

 

8. 이때사용되는 옵션은 -g옵션입니다.


 

c437ca611387344814940cb4f97d09ce_1646639602_638.png
 

9. 주의하실 것은 위에서 지정한 500이라는 GID /etc/group파일내에 정의되어 있는 그룹의 GID여야 한다는 점입니다. 이 명령어의 실행결과로 변경되는 것은 /etc/default/useradd파일의 GROUP변수의 값입니다.


 

c437ca611387344814940cb4f97d09ce_1646639621_1771.png
 


10. , 변경된 GROUP의 값을 확인하기 위하여 cat명령어로 /etc/default/useradd파일의 내용을 확인해 보셔도 되지만 “useradd -D”로 확인하셔도 변경된 결과를 동일하게 확인할 수 있습니다.

 

11. 이후부터 useradd에 의해 새로 생성되는 모든 사용자들의 기본소속그룹은 GID 500인 그룹이 됩니다.

 

12. 이번에는 useradd의 의해 새로 생성되는 모든 사용자들의 계정사용 종료일자를 지정할 수 있는 방법에 대한 설명입니다.

 

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

 

14. "useradd -D" 다음에 -e옵션을 지정하고 2007-12-30이라고 하시면 새로 생성되는 모든 사용자은 계정을 2007 12 30일까지만 사용할 수 있습니다.


  

c437ca611387344814940cb4f97d09ce_1646639644_7438.png
 


15. , 다시 말씀드려서 이명령 이후부터는 useradd에 의해 새로 생성되는 모든 사용자들은 2007 12 30일까지만 계정을 사용할 수 있다는 것입니다.

 

16. 이 명령어의 결과로 인하여 /etd/default/useradd파일내의 EXPIRE변수의 값에 2007-12-30이 지정되게 됩니다.


 

c437ca611387344814940cb4f97d09ce_1646639665_7534.png
 

17. , 이번 결과를 보면 EXPIRE값이 "2007-12-30"으로 변경되어 있음을 알 수 있습니다.  


18. , 다시말씀드려서 이후로 생성되는 모든 계정들은 계정사용종료일이 2007 12 30일까지로 설정됩니다. 참고로 “useradd -D”의 결과로도 동일한 값을 확인할 수 있습니다.


 

1. 이제 지금까지 "useradd -D"로 설정했던 값들이 실제로 적용되는 예를 보도록 하겠습니다.

 

2. 지금까지 설정했던 "useradd -D"의 값들이 적용되는 것을 확인하기 위하여 useradd의 예를 보도록 하겠습니다.

 

3. 이번 예는 지금까지의 설정을 그대로 사용하는 것이므로 앞의 예와 함께 보셔야 합니다. sspark5라는 계정을 useradd로 만들어 보겠습니다.



c437ca611387344814940cb4f97d09ce_1646639815_0703.png
 


4. 이제 /etc/passwd내에 설정된 sspark5의 설정내용입니다.


 

c437ca611387344814940cb4f97d09ce_1646639836_4718.png
 

5. 여기서 확인할 수 있는 바와 같이 UID GID, 홈디렉토리의 위치가 "/usr/sspark5"로 설정되었으며, 기본사용쉘이 "/bin/csh"라는 것을 알 수 있습니다.

 

6. 이제 /etc/shadow 의 내용중 sspark5의 설정내용입니다.


 

c437ca611387344814940cb4f97d09ce_1646639857_3846.png
 

7. 그리고 /etc/group파일의 내용 가운데 sspark5그룹에 대한 설정내용입니다.


c437ca611387344814940cb4f97d09ce_1646639877_5352.png
 

8. 그리고 sspark5의 홈디렉토리인 /usr/sspark5디렉토리를 확인한 것입니다.



c437ca611387344814940cb4f97d09ce_1646639897_8629.png
 


9. 지금까지의 예로 보셨던 바와 같이 "useradd -D"는 계정생성명령어인 useradd의 기본설정값을 변경하는 명령어입니다.

 

10. 이상과 같이 useradd의 기본적인 사용법과 useradd명령어의 다양한 옵션들, 그리고 useradd의 실행환경에 영향을 미치는 /etc/login.defs파일과 /etc/default/useradd파일, 그리고 /etc/skel디렉토리마지막으로 "useradd -D"의 사용방법과 목적, 그리고 실 사용예들을 모두 배워 보았습니다.

 


 







관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  65 명