티스토리 뷰

OS/Linux

Linux 사용자 및 그룹 관리

뵤루 2022. 2. 18. 23:38
  • 사용자 및 그룹 관리

관련된 파일 및 디렉터리

/etc/passwd : id, 패스워드, uid, gid, 코멘트, 홈디렉터리, shell
/etc/group : id, 패스워드, gid, 사용자
/etc/shadow : id, 패스워드, 마지막으로 패스워드를 수정한날짜, 패스워드 최소 사용 기간, 패스워드 최대 사용 기간, 경고메세지 출력일, 유예 기간, 계정 만료일
/etc/default/useradd : 기본그룹, 유예 기간, 계정 만료일, shell, spool 생성 여부
/etc/login.defs : 메일사서함 위치, 패스워드 최소 사용일, 패스워드 최대 사용일, 경고메세지 출력일, 패스워드 최소 길이, uid 시작 및 끝번호, gid 시작 및 끝번호, 패스워드 암호화방식 sha512
/etc/skel : 사용자 계정 생성시 기본적으로 홈 디렉터리에 복사하는 파일 및 디렉터리

 

이 파일과 디렉터리에 대해 알아보면서 정리해보자

 


 

  • 사용자 계정 생성, 수정

사용자 계정 생성 시 자동생성되는 디렉터리 및 파일
/home/계정이름 <- 이런 디렉터리가 생성됨. 사용자의 홈 디렉터리
/var/spool/mail/계정이름 <- 해당 디렉터리에 파일 생성. 메일 사서함 파일 = /var/mail/계정이름
사용자 계정 삭제 시 -r 옵션을 사용하지 않으면 위의 두 파일과 디렉터리가 그대로 남아있게 된다.
동일한 이름의 계정 생성 시 계정은 생성되지만 uid 충돌 문제가 발생하기 때문에 계정 이름은 다르게 생성하자.

 

  • /etc/passwd 파일 분석

 a:x:1000:1000::/home/a:/bin/bash

a: : ID
x: : password
1000: : UID. 사용자별로 고유하다. 기본적으로 1000번부터 생성됨. (/etc/login.defs에서 수정 가능) 만일 순차적 2000번 uid를 사용하면 그 다음 계정은 2001로 생성된다. 중간의 제외된 uid를 사용하지 않음
1000: : GID. 그룹별로 고유하다. 사용자 계정을 생성하면 동일한 그룹이 자동 생성됨
: : 코멘트 설명
/home/a: : 사용자의 홈디렉토리
/bin/bash : login 주어지는 Shell

 

  • useradd, usermod

사용자 계정 생성 시 /etc/passwd의 Colume 값을 변경할 수 있는 옵션
-u : uid 설정. 기본적으로 1000번부터 할당, 마지막 uid값 이후로 생성
-g : gid 설정. 기본적으로 uid와 동일한 gid 자동 생성. 단 -g 옵션은 해당 그룹이 존재해야함
-c : coment 설정
-d : 홈 디렉터리 지정. 해당 홈 디렉터리 존재해야함. 
-s : login Shell 지정. 기본값 /bin/bash
     shell은 명령어 해석기, App 전달하는 명령을 받아서 Kernel에 전달
     shell이 없으면 login불가
현재 shell확인 : # echo $SHELL
모든 shell확인 : # cat /etc/shells
login shell변경 : # chsh -s 로그인shell 사용자
# chsh -s /bin/bash root
login 불가능 : /bin/false 로그인불가 메세지 출력 안함
                  /sbin/nologin 로그인 불가 메세지 출력


usesmod 역시 옵션은 동일함. 
단 홈 디렉터리 변경 시 내부 컨텐츠까지 이동을 위해서는 -m 옵션 추가
# usermod -d /home_1/a -m a

 

※사용자 계정 삭제 시 유의할 점
-r 옵션을 반드시 추가해서 삭제해야 함

계정 생성 시 
홈 디렉터리 생성 /home/계정명
메일 사서함 파일 생성 /var/mail/계정명 and /var/spool/mail/계정명 (동일한 파일)
-r 옵션없이 삭제시 위의 두 개의 디렉토리 및 파일이 그대로 남는다
동일한 계정 생성 시 uid 충돌 문제 발생. 해당 계정 -r 삭제해도 디렉토리 및 파일 존재 error

 

※해결책
rm -rf /home/계정명, rm -rf /var/spool/mail/계정명 <- 해당 명령어로 삭제한다



/etc/shadow 분석

 

 

a:             ID

!!:             암호화된 패스워드

19041:       마지막으로 패스워드를 변경한 날짜 (최초 기준일 1970-01-01)

0:             패스워드 최소 사용 기간 (이 기간동안은 패스워드 변경 불가)

99999:       패스워드 최대 사용 기간 (99999는 무제한, 개인정보보호법 통상 45일, 최대 6개월 이내 변경)

7:             경고메세지 출력일

:               유예기간

:               계정 만료일

 

  • 관련 명령어

chage

[옵션]

-m : 패스워드 최소 사용일 (2로 사설정했다면 2일간 패스워드 변경 불가)

 # chage -m 2

-M : 패스워드 최대 사용일 (30으로 설정했다면 30일 후에는 패스워드를 변경해야 한다)

 # chage -M 30

-W : 경고 메세지 출력일 (7로 설정했다면 패스워드 만료일 7일 전부터 패스워드 만료일을 알려주는 메세지가 로그인 시 출력된다)

 # chage -W 7

-I : 유예기간 (5일로 설정했다면 패스워드 만료 후 5일 동안 로그인 시 패스워드를 변경하면 계정을 사용 가능함을 알리는 메세지 출력 및 패스워드 변경 가능, 출장 등의 이유로 무조건 만료시키지 않는다)

 # chage -I 5

-E : 계정의 만료일 (모두 패스워드와 관련된 사항이지만 이 부분만 계정과 연관된다. 따라서 패스워드를 변경하는 변경일로부터 모든 설정이 다시 리셋되지만 이 계정 부분은 리셋되지 않는다! 보통 명확한 기일이 정해진 프로젝트 인력 등에게 설정한다, 패스워드 만료일보다 계정의 만료일이 앞서면 패스워드 만료일은 의미가 없다)

# chage -E 2022/03/31

-l : 계정 정보를 확인

 

계정 만료일은 usermod (-e) 에서도 변경할 수 있다.

 

패스워드를 설정한 상태라면 패스워드 부분이 길게 나오지만, 패스워드를 설정하지 않은 상태라면 !!만 뜬다.
계정 정보를 확인하는 옵션 -l

 

패스워드 최소 사용일 설정
변경하려고 하면 이렇게 뜬다.
날짜를 변경하면
이렇게 비밀번호를 바꿀 수 있다 (너무 짧게는 안된다...)

 

패스워드 최대 사용일 설정
경고 메세지 출력일 설정

 

변경을 하고 나면 날짜를 변경하거나 다른 원격 프로그램으로 접속해서 설정이 잘 적용됐는지 확인해봐야 한다

(date -s 옵션 사용)

 

유예기간 설정
유예기간이 끝나기 전에 접속하면 비밀번호를 바꿀 기회를 준다
계정 만료일 설정
계정이 만료되면 이런 문구가 뜨며 접속이 거부된다.

 


  • /etc/default/useradd 분석

 

vi /etc/default/useradd

 

Group이 100번으로 되어있다.

useradd 옵션 중 -N옵션이 있다.

이것을 이용해서 아이디를 만들게 되면 100번 group에 들어가게 된다.

홈 디렉터리와 쉘 형식, 스켈파일의 위치, 메일 파일의 위치 등등도 바꿀 수 있다

 

이렇게 정해놓고 계정을 만들어보자

 

변경이 잘 됐다!

 

 

계정 만료일을 체크
여기서 유예기간을 바꿔보자

 

chage -l하면 계정 만료일이 안뜬다

설정을 안해줬으니까

 

 

chage로 만료일을 설정해주면 유예기간까지 제대로 뜬다

 

이번엔 만료날짜와 로그인 쉘 변경
됐다!

 

이 설정으로 skel 디렉터리의 위치도 지정해줄 수 있다

 

/etc/skel은 파일이 아닌 디렉터리이다
skel을 복사해와서 지정했다

 

마지막의 mail파일 생성을 no로 바꾸면 h 계정의 메일파일이 생성되지 않는다

 


  • /etc/login.defs

 

패스워드의 기본정보는 여기 담겨있다
일단 이렇게 수정해두자

 

각종 로그인에 대한 정보들이 담겨있다.

 

/etd/login.defs에서 설정한대로 계정이 만들어졌다

 


 

비어있는 id를 찾아서 들어가는 명령어

 

 

'OS > Linux' 카테고리의 다른 글

Linux ACL  (0) 2022.02.24
Linux 디스크 관리  (0) 2022.02.22
vi 편집기  (0) 2022.02.18
Linux 파일의 속성 분석  (0) 2022.02.18
Linux 파일 압축, 아카이브  (0) 2022.02.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함