Linux는 관리자 계정인 root 계정과 일반 사용자 계정으로 나누어 관리한다.
-사용자 계정은 다시 login이 가능한 사용자 계정과
login없이 시스템에의해서 만들어지는 시스템 사용자 계정으로 나누어 관리한다.
-일반적으로 'root' 계정이 관리자 계정인 Super user라고 인식하지만 실제 시스템은 ID형식이 아닌
UID라고하는 숫자 형식을 사용하여 계정을 인식한다.
-UID는 정수형식으로 할당되며 UID값이 '0'인 계정이 관리자 계정으로 동작하기때문에
root 계정이 관리자 계정 (Super User)로 동작한다.
-RedHat 계열은 일반 사용자 계정의 UID값이 500번부터 할당되며 나머지 다른 배포판은 1000번부터 할당된다.
(CentOS 7버전부터 일반 사용자 계정의 UID값이 1000번부터 할당된다.)
-하나의 계정은 반드시 하나 이상의 Group에 소속되어야 한다.
-root 계정 사용자는 바로 root 계정으로 접속하지 않고
일반 사용자 계정으로 접속한 후 관리자 권한을 획득하는 방법을 권장한다.
-계정 생성은 관리자 권한(root 권한)으로만 생성이 가능하다.
=======================================================================================
1. 사용자 추가
# useradd [옵션 1] [옵션 1의 값] [옵션 2] [옵션 2의 값] .... [계정명]
-c : comment로 닉네임을 설정시 사용하는 옵션 (Server로 직접 접속시 확인된다.)
-s : 사용자가 사용할 shell을 지정시 사용하는 옵션 (shell 설정시 shell의 경로까지 입력해야 한다.)
-d : 사용자 계정의 홈 디렉터리를 변경시 사용하는 옵션 우선적으로 해당 디렉터리가 생성되있어야 한다.
-u : UID 지정
-g : GID 지정, 단 UID와 동일하게 자동 생성됨으로 최초 사용시 UID와 동일한 ID를 입력하면
"없는 그룹입니다"란 메세지가 출력되면서 계정 생성 불가하니 유의.
먼저 GID가 존재한 뒤에야 계정에 부여 가능.
-G : 기본 그룹 외에 추가로 속하게 할 그룹 추가 (0번은 root 라고 쳐도 됨)
-N : 유저id와 같은 유저 그룹을 안만듬
2. 사용자 제거
# userdel [계정명]
-r 옵션을 반드시 사용한다.
만약 빼먹었을 경우 /home/[계정명] 디렉토리와 /var/spool/mail/[계정명] 디렉토리를 직접 삭제해 준다.
3. 사용자 수정
# usermod [옵션1] [옵션값1] [계정명]
생성된 사용자 계정의 디렉터리 , 속성 , Group 정보를 변경할 수 있다.
주의해야 할 점은 홈 디렉토리 변경시엔 -md 옵션을 써야한다.
4. 암호 변경
# passwd [계정명]
문제 Q. 사용자 m3을 생성하면서 uid 3000, gid 3000, 코멘트는 wasted, 홈디렉토리는 /korea,
로그인 불가능하게 하기(불가능한 이유 떠야함)
======================================================================================
사용자 계정 생성에 관련된 파일 목록
1 /etc/passwd : 관리자 및 사용자 계정의 정보가 포함된 파일 (계정ID , UID , GID , 홈디렉터리 , shell)
2 /etc/shadow : 관리자 및 사용자 계정의 Password가 저장된 파일
3 /etc/group : 관리자 및 사용자 계정들이 소속된 Group 정보가 저장된 파일
4 /etc/default/useradd : 사용자 계정 생성시 긱본적으로 적용되어야할 정보나 경로가 포함된 파일
5 /etc/login.defs : 사용자 계정 생성시 필요한 UID , GID 정보가 포함된 파일
6 /etc/skel/ : 사용자 계정 생성시 필요한 파일 또는 디렉터리 정보가 포함된 디렉터리
7 /var/spool/mail/ : 사용자 계정 생성시 해당 경로에 자동으로 Mail계정이 생성된다.
8 /etc/shell : shell 관련 파일
=======================================================================================
자세한 속성 분석방법
1. /etc/passwd
관리자 및 사용자 계정의 정보가 포함된 파일
guest:x:1000:1000:guest:/home/guest:/bin/bash
(: 콜론 단위로 끊어 해석한다)
- guest : 계정명 (계정 ID)
- x : Password를 의미 (실제 Password는 /etc/shadow 파일안에 저장된다.)
- 1000 : User-ID (UID) = 시스템 계정 = 1 ~ 999 , 사용자 계정 = 1000 ~
- 1000 : Group-ID (GID)
- guest : comment이며 닉네임이라고도 부른다. (생략시 기본값으로 계정명과 동일한 값이 설정된다.)
- /home/guest : 해당 계정의 홈 디렉터리 경로
- bin/bash : 해당 계정이 사용할 shell이 포함된 경로
2. /etc/shadow
관리자 및 사용자 계정의 Password가 저장된 파일
a:$6$CLAKjoUA:18764:0:99999:7:::
(: 콜론 단위로 끊어 해석한다)
a ID
:$6$CLAKjoUA 암호화된 패스워드, sha5412(/etc/login.defs에서 이에 대해 정의함.)
:18764 마지막으로 패스워드를 변경한 날짜 : 기준일 1970년 1월 1일 이후
:0 패스워드 최소사용일수 (해당 기간동안은 패스워드 변경불가)
:30 패스워드 최대사용일수 (해당 기간이 지나면 변경해야함)
:7 패스워드 만료일전 경고메세지 출력일
:5 유예기간 패스워드 만료일 후 해당 기간 동안 login 이전에 패스워드 변경 시 다시 로그인 가능하게
: 계정의 만료일 (기간이 정해진 외부 프로젝트 인력이 조직내부에서 작업할때) 기준일 위와같음
: 사용 안함
문제 Q. 유저 ccc의
패스워드 최대 사용일 : 40일
패스워드 최소 사용일 : 1일,
패스워드 최소길이 : 5 length,
패스워드 만료경고일 : 5일으로 변경
4. /etc/default/useradd
사용자 계정 생성시 긱본적으로 적용되어야할 정보나 경로가 포함된 파일
useradd defaults file
GROUP=100 <---- GID 정보
HOME=/home <---- 계정 생성시 해당 경로에 홈디렉터리가 생성된다.
INACTIVE=-1 <---- Password 만료일 비활성화
EXPIRE= <---- Password 만료일 설정
SHELL=/bin/bash <---- 계정 생성시 적용되는 shell
SKEL=/etc/skel <---- skel의 경로
CREATE_MAIL_SPOOL=yes <---- 계정 생성시 E-mail 생성 유/무 설정
문제 Q.기본 로그인 shell을 sh로 한다. 기본 홈디렉토리를 /home_test 로 한다.
/etc/default/useradd 에서 위와 같이 설정하고 계정을 생성하면 아래와 같이
계정 shell과 홈 디렉토리 위치가 바뀐 것을 알수 있다.
5. /etc/login.def
사용자 계정 생성시 필요한 UID , GID 정보가 포함된 파일
USERGROUPS_ENAB : 유저 이름과 같은 유저 그룹 생성 여부
Q1. user id를 생성할 때 홈 디렉터리를 생성하지 않게 한다.
vi /etc/login.defs 를 이용해서 설정을 편집합니다.
실제로 유저 zz의 홈 디렉토리가 안 만들어 진 것을 확인
Q2. 유저 이름과 같은 유저 그룹을 자동 생성하지 않는다.
Q3. UID 값은 10000번대 이상으로 자동 생성되게 한다.
UID가 10000번대 이상이고, GID도 UID와 같지 않은 것을 볼 수 있다.
Q4. user mail 디렉토리의 위치는 /mail로 변경한다
Zz의 메일함이 /mail에 들어와 있다.
======================================================================================
사용자 계정에 대한 유통기한 설정
chage 옵션 [계정명]
-m 정수 패스워드 최소사용일
-M 정수 패스워드 최대사용일
-W 정수 경고메세지 출력일
-I 정수 유예기간
-E /yyyy/mm/dd 계정 만료일
EX) chage -m 3 -M 30 -W 5 -I 4 -E 2021/06/24 b
적용 확인은 아래 명령어를 써서 확인한다.
# chage -l [계정명]
# tail -3 /etc/shadow
# date
# date -s "2021/06/18 19:00:00"
Q. user id를 생성할 때 아래와 같이 생성하라
암호 최소 사용일 =5 UID = 2022
최대사용일 = 30 GID = 2022
경고메세지 출력일 = 6 HOME = /home_guest
유예기간 = 5 SHELL = /bin/sh
계정만료일 = 10 Coment = admin
'Linux' 카테고리의 다른 글
Storage 관리-1 (partition - format - mount) (0) | 2022.10.31 |
---|---|
파일 속성 분석 (권한) (0) | 2022.10.31 |
파일 압축 (compress) (0) | 2022.10.30 |
Vi 편집기 (0) | 2022.10.30 |
Linux 기본 명령어 (0) | 2022.10.30 |