출처: http://vallista.tistory.com/entry/Syntax-Highlighter-티스토리에서-코드-이쁘게-넣기 [VallistA]>

'lm1'에 해당되는 글 1건

  1. 2019.09.16 2-1.1사용자 관리 day1
lm1
posted by ddanss 2019. 9. 16. 00:01
728x90

1. root 관리

 

리눅스 시스템 내부에서는 사용자를 숫자값 형태의 UID(User Identity)로 관리.

 

UID는 0번부터 정수값으로 배정되는데, 0번을 슈퍼유저로 인식한다, 즉 0번이 root다.

 

레드햇 계열은 500번, 데비안 계열은 1000번 부터 할당된다.

 

사용자 계정의 정보는 /etc/passwd 파일에 기록된다.

 

bin, daemon, adm, game등 관리자가 생성하지 않은 계정들이 있는데, 이 계정들을 시스템 계정이라한다.

 

##root 계정관리

(1) root 계정 이외에 다른 슈퍼유저가 존재하는지 점건한다. 즉, root 이외에 다른 사용자의 UID가 0인지를 점검한다.

(2) PAM(Pluggable Authentication Modules)를 이용하여 root 계정으로 직접 로그인하는 것을 막고, 필요하면 su 명령의 사용을 유도한다.

(3) 환경 변수인 TMOUT를 설정하여 무의미하게 장시간 로그인하는 것을 막는다.

(4) 일반 사용자에게 특정 명령어 권한만 할당해 줄 경우에는 su보다는 sudo를 이용하도록 한다.

 

2. 사용자 계정 관리

 

(1) 사용자 계정 생성 : useradd

root권한자가 root이외의 사용자를 생성할 때 사용하는 명령어로 adduser라고 입력해도 된다.

 

useradd [option] 사용자계정 이름

-p : 사용자의 암호를 추가 시에 지정할 수 있다. 현재 리눅스에서는 암호화된 값을 사용하므로 암호화된 값으로 지정해야한다.

-d 홈 디렉터리를 지정할 떄 쓰인다. 최종 디렉터리만 생성하므로 중간 경로가 있는 경우에는 미리 생성해야 한다.

-g : 그룹을 지정할때 사용하는데, 지정할 그룹이 미리 생성되어 있어야 한다.

-G : 기본 그룹 이외에 추가로 그룹에 속하게 할 경우에 쓴다.(--groups)

-c : 사용자 생성시 사용자에 대한 설명을 설정한다.

-s : 사용자 생성 시 사용자가 사용할 셸을 지정한다.

-D ; /etc/default/useradd에 설정된 유저추가와 관련된 기본 사항들을 보여준다.

-m : 사용자를 생성할 대 홈 디렉터리를 생성해 주는 옵션.

-k : 사용자 생성 시에 제공되는 환경 파일들은 기본적으로 /etc/skel로 지정되어 있는데, 이외의 디렉터리를 지정할 때 쓰인다.

-f : 사용자의 패스워드가 만기일을 날짜수로 지정한다.

-e : 계정의 만기일을 YYYY-MM-DD형식으로 지정한다.

-u : 사용자 추가시에 UID값을 지정한다.

 

ex1)

useradd posein

- posein 이라는 계정을 생성.

 

ex2)

useradd marine -d /home/terran/marine -g terran

- marine이라는 사용자를 생성하면서 홈 디렉터리의 경로 및 그룹을 지정한다. 물론 해당 디렉터리(/home/terran)과 해당그룹(terran)은 미리 생성되어 있어야 한다.

- mkdir /home/terran, groupadd terran은 미리 되어있어야한다.

 

ex3)

useradd -D 

- 사용자 생성 시 기본적으로 적용되는 정보를 확인한다. 해당 정보 파일은 /etc/default/useradd이다.

 

(2) 사용자 암호 부여 : passwd

등록된 사용자의 암호를 지정하거나 변경하는 명령어이다. 리눅스에서는 useradd로 계정을 생성한 후에 암호를 지정하지 않으면 로그인이 되지 않으므로 반드시 지정해야한다. passwd만 입력하면 현재 로그인 사용자의 암호가 변경되고, root만 다른 사용자의 암호를 변경할 수 있다.

 

ex1)

[posein@www ~]$ passwd

- 현재 로그인한 사용자 본인의 암호를 변경한다.

 

ex2)

[root@www ~]$ passwd yuloje

- yoloje라는 사용자의 암호를 변경한다.

 

(3) 사용자 전환 : su

su(substitute user)는 대리 유저라는 뜻의 약어로 시스템에 로그인되어 있는 상태에서 다른 사용자의 권한으로 셸을 실행할 수 있도록 전환하는 명령어이다.

텔넷과같이 원격접속으로 하면 root계정으로 바로 로그인이 불가능 한데 su 명령어가 사용자계정->root계정으로 옮겨갈 수 있게 해준다.

 

su [option] [사용자명]

-, -l : su명령을 옵션없이 실행하면 로그인한 사용자의 환경 변수 값을 가지고 다른 사람의 권한만 갖는다. 전환하려는 사용자가 실제 로그인한 것처럼 셸을 이용하려면 반드시 이 옵션을 지정해야 한다. 특히 root 권한의 셸을 이용하기 위해서는 반드시 필요하다. (--login)

-c : 사용자를 전환하지 않고 다른 사용자의 권한으로 명령을 일시적으로 수행할 때 사용한다. (--command)

 

ex1)

su

- root 사용자로 사용자를 전환한다. root로 권한자를 바꾸지만 환경 변수 등은 기존 사용자인 posein의 환경으로 적용되어 실제 root 권한을 수행하기에는 제약이 따른다.

 

ex2)

su -

- root사용자로 전환한다. 실제 root로 로그인한 것처럼 권한, 환경 변수 등 모든 환경이 root의 상태가 된다.

 

ex3)

su root -c "tail /etc/shadow"

- 사용자를 전환하지 않고 일회적으로 명령을 내릴때 -c 옵션을 지정한다.

 

ex4)

su - yuloje

- yuloje 사용자로 전환한다. root인 경우에는 다른 사용자로 전환 시 패스워드를 묻지 않는다.

 

사용자 관련 파일

useradd 명령을 실행하면 기본 설정은 /etc/default/useradd에서 정보를 가져오고, /etc/skel에 들어있는 파일 및 디렉터리를 사용자에게 제공한다.

생성된 사용자의 정보는 /etc/passwd와 /etc/shadow에 기록된다.

 

(1) /etc/passwd

- 시스템에 로그인하여 자원을 이용할 수 있는 사용자의 목록을 저장하고 있는 정보 파일.

- /etc/passwd의 패스워드를 다시 암호화하여 /etc/shadow에서 추가로 관리한다.

- tail /etc/passwd로 확인 가능

 

기본구조

- username : password : UID : GID : fullname : home-directory : shell

 

사용 예

- posein : x : 500 : 500 : System Engineer : /home/posein : /bin/bash

 

username : ID

password : 비밀번호

UID : UserID

GID : GroupID

fullname : 사용자에 대한 추가적인 정보가 기록되는 부분.

 

(2) /etc/shadow

/etc/passwd의 두번째 필드인 패스워드 부분을 암호화하여 관리하는데 총 9개 필드로 구성되어있다.

root만 접근가능.

 

기본구조

- username : password : last : may : must : warn : expire : disable : reserved

username : 사용자이름, 즉 아이디

password : 암호화된 패스워드

last : 가장 최근에 패스워드를 바꾼 날, 1970년 1월 1일부터 계산한 날 수

may : 패스워드를 바꾼 후 최소로 사용해야 되는 날짜수로 다른 패스워드로 변경 가능하기까지의 유예기간이다. 0이면 언제라도 패스워드를 변경할 수 있다.

must : 현재 사용중인 패스워드의 최대 사용 가능한 기간, 즉 현재 패스워드 유효기간이다. 99999이면 패스워드를 변경하지 않고 계속 사용 가능하다는 것을 의미.

warn : 패스워드 사용기한이 만료되기 전에 사용자에게 바꿀 것을 경고하는 기간이다.

expire : 패스워드 사용기한이 만료된 뒤에 실제 계정 사용이 불가능하기 까지 기간으로 일종의 유예기간

disable : 계정 만기일로 계정 사용 불가능하게 된 날 또는 불가능하게 되는 날이다. 역시 1970년 1월 1일부터 계산한 날.

reserved : 다른 기능을 사용하기 위해 남겨둔 예약된 공간으로 아직 사용되지 않고 있다.

 

/etc/passwd에서 관리하려면 pwunconv -  /etc/shadow에서 다시 관리혀려면 pwconv

 

pwck : Password check의 약자로 사용자 관련 파일인 /etc/passwd, /etc/shadow를 검사해준다.

 

(3) /etc/default/useradd

별도의 옵션없이 'useradd 사용자명'으로 계정 생성 시에 기본적으로 적용되는 설정이 들어있는 파일이다. cat 명령으로 확인하거나 useradd -D로 확인 가능하다.

 

 GROUP : 속하게 되는 그룹 GID

HOME=/home : 홈 디렉터리의 위치로 사용자를 생성하면 '/home/사용자명' 이 된다.

INACTIVE=-1 : 패스워드의 사용 기한이 지난 뒤 실제로 계정의 로그인을 막는 유예기간을 설정하는 것이다. -1이면 이것을 별 의미없이 만드는 것이고, 0이면 유예기간 없음, 3이면 3일내에는 로그인이 가능하다. 라는 뜻이다.

EXPIRE= : 계정 유효기간을 지정하는 부분

SHELL=/bin/bash : 사용자 생성시에 할당되는 셸을 의미

SKEL=/etc/skel : 사용자 생성 시에 제공되는 파일 및 디렉터리가 들어 있는 디렉터리를 의미한다.

CREATE_MAIL_SPOOL=yes : 사용자 생성 시에 메일 파일을 생성할 것인지를 지정하는 항목이다. yes로 설정하면 '/var/spool/mail/사용자명'으로 메일 관련 파일이 생성된다.

 

(4) useradd 명령을 이용한 /etc/default/useradd 파일 관리

useradd -D [option]

 

-D : 사용자 추가 시에 기본적으로 반영되는 정보 파일인 /etc/default/useradd의 내용을 출력한다.

-g : 기본 그룹을 지정한다. 여기서 지정하는 값은 /etc/group내에 잇어야 한다.

-b : 사용자 홈 디렉터리의 상위 디렉터리를 지정한다.

-f : INACTIVE행과 관련된 옵션으로 패스워드 유효기간이 만료된 후에 언제 이 계정을 사용 할 수 없도록 할 것인지를 하루단위로 설정한다.

-e : 사용자 계정의 만료일을 지정하는 옵션이다.

-s : 사용자의 기본 셸을 지정하는 옵션이다.

 

ex1)

useradd -D -b /home2 -s /bin/csh

- 사용자 홈 디렉터리가 생성되는 디렉터리를 /home2로 바꾸고, 기본 셸은 /bin/csh로 지정한다.

 

ex2)

useradd -D -e 2015-12-31

- 계정 만기일을 2015년 12월 31로 지정하여 /etc/default/useradd파일에 기록한다.

 

(5) /etc/login.defs

메일 데릭터리, 패스워드 관련 설정, UID의 최솟값 최댓값 등이 들어있다.

 

ex1)

MAIL_DIR /var/spool/mail

- 사용자의 mail 디렉터리를 지정한다.

 

ex2)

PASS_MAX_DAYS 99999

- 패스워드 최대 사용기간을 지정한다.

 

ex3)

PASS_MIN_DAYS 0

- 패스워드 변경 후에 사용하는 최소 기간을 지정한다. 0이면 패스워드 변경의 제한이 없다.

 

ex4)

PASS_MIN_LEN 5

 

ex5)

PASS_WARN_AGE 7

- 패스워드 만기일 도래 전에 경고를 보여주는 날짜를 지정한다.

 

ex6)

UID_MIN 500

 

ex7)

UID_MAX 60000

 

ex8)

GID_MIN 500

 

ex9)

GID_MAX 60000

 

ex10)

CREATE_HOME yes

- 사용자 추가 시에 홈 디렉터리 생성 여부를 지정한다.

 

ex11)

UMASK 077

- 사용자의 umask 값을 설정할 때 사용하는데, 077이면 사용자의 생성 값은 022가 된다.

 

ex12)

USERGROUPS_ENAB yes

- 레드햇 계열 리눅스에서 옵션 없이 사용자를 추가하면 본인아이디와 동일한 그룹을 생성하여 포함시킨다. 이 때 사용자를 제거하면 그룹도 같이 제거되게 하는 설정이다.

 

ex13)

ENCRYPT_METHOD SHA512

- 사용자 패스워드에 사용할 암호화 알고리즘을 지정하는 설정이다.

반응형