사용자 계정 관리 ( 2 )
① # useradd [옵션] [계정명]
사용자 계정 추가 ★
→ 옵션
-c (Comment) 설명
-u UID
-g (주 그룹) GID
-G (보조 그룹) Group
-s Shell
+-----------------------------------------------------------------------------------------------+
<예제 1>
# useradd Maroon5-1 → 사용자 계정 추가
계정명 : Maroon5-1
암호 : 보이는 것은 x 이지만 /etc/shadow에 저장되어있습니다.
# cat /etc/login.defs
UID : 500
GID : 500
설명 : 없음
홈디렉토리 : /home/Maroon_5
# cat /etc/login.defs
# cat /etc/default/useradd
로그인 쉘 : bash
# cat /etc/default/useradd
※ # cat /etc/login.defs, # cat /etc/default/useradd를 통해 설정된 내용을 볼 수 있습니다.
<예제 2> skel★
/etc/skel 디렉터리에 파일 생성
사용자 계정 생성 시 홈디렉터리에 기본적으로 생성되는 파일들
기본으로 .bash_logout, .bash_profile, .bashrc가 숨김파일로 들어있습니다.
skel 모든 파일이 자동으로 복사가 됩니다.
+-----------------------------------------------------------------------------------------------+
② # useradd -D
사용자 추가 시 적용되는 기본값을 변경
→ # cat /etc/default/useradd 파일의 내용과 동일한 결과가 출력
+-----------------------------------------------------------------------------------------------+
※ 기본 값 변경하기
1. vi /etc/default/useradd → vi를 이용하여 기본값 변경
2. useradd -D → 명령어를 이용하여 기본값 변경
<예제 1>
기본 홈디렉토리 경로 변경
테스트 디렉토리를 먼저 생성해준 뒤,
-b (base) 기본 홈디렉토리 경로 변경을 해줍니다.
# useradd -D 으로 경로 변경을 확인해 줍니다.
HOME=/home -> HOME=/sub_home
<예제 2>
vi를 이용하여 기본 홈 디렉토리 경로 되돌리기
#vi /etc/default/useradd 이용하기
HOME=/sub_home ---> HOME=/home 로 수정
+-----------------------------------------------------------------------------------------------+③ # usermod [옵션] [계정명]
사용자 계정 정보 수정
→ 옵션
-c 코멘트
-u UID
-g GID
-G GROUP
-s Shell
-l 사용자 계정명 변경
+-----------------------------------------------------------------------------------------------+
<예제 1>
Maroon_5 계정 수정하기
UID - 700 GID - 502 (이어야하는데 왜나는 502..)?
설명 - sugar
쉘 - /bin/sh
* "sugar"를 입력할 때 ""를 사용해야 하나의 인자로 받아들인다.
+-----------------------------------------------------------------------------------------------+
④ #userdel [계정명] & userdel -r [계정명]
계정 삭제
userdel -r은 /home 안에 있는 디렉터리까지 다 삭제됩니다.
⑤ #passwd
패스워드 설정
1) # passwd → 현재 로그인한 사용자의 패스워드 변경
2) # passwd [계정명] → 특정 계정의 패스워드를 변경할 때 사용 (root only)
→ 옵션
-l (lock) 패스워드 잠금
-u (unloch) 패스워드 잠금 해제
-d (delete) 패스워드 제거
※ 패스워드 정책
# cat /etc/login.defs 에서 확인할 수 있습니다.
- 비밀번호 최소 5글자
- 알파벳, 숫자, 특수문자가 각 한 개씩 포함되어야 한다.
- 사용자 ID가 포함될 수 없다.
- 등등
+-----------------------------------------------------------------------------------------------+
<예제 1>
# useradd AdamLevine → 테스트 용 계정 추가
# passwd AdamLevine → 암호 → 123
※ root계정은 패스워드 정책에 맞지 않더라도 비밀번호를 설정할 수 있습니다.
<예제 2>
AdamLevine-2 계정 추가 및 암호123으로 설정
<예제 3>
AdamLevine 계정으로 스위칭 후 AdamLevine-2 계정으로 스위칭
# su - AdamLevine -> AdamLevine 계정으로 스위칭
※ root계정은 스위칭 시 해당 계정의 패스워드 입력 과정이 없습니다.
But 일반 사용자 계정은 암호를 입력해야 로그인이 가능합니다.
<예제 4> passwd -d를 이용하여 AdamLevine-2 계정의 패스워드 삭제 한 후
su를 이용하여 AdamLevine 계정으로 스위칭 후 AdamLevine-2 계정으로 스위칭
비밀번호를 입력하지 않고 바로 AdamLevine-2계정으로 넘어갈 수 있습니다.
<예제 5>
AdamLevine을 잠금 설정하고 AdamLevine-2 계정에서 AdamLevine 계정으로 스위칭하기
AdamLevine-2 계정에서 AdamLevine으로 스위칭 시 패스워드를 입력해도 로그인 불가
+-----------------------------------------------------------------------------------------------+
⑥ su (Substitute User)
사용자 전환
su [계정명] 해당 계정으로 전환하나 환경 변수는 바꾸지 않음
su - [계정명] 해당 계정으로 전환하며 환경 변수 함께 변경
<예제 1>
su AdamLevine
홈 디렉터리가 root인 것을 확인할 수 있습니다.
프롬프트 변경한 것이 유지됩니다.
<예제 2>
su - AdamLevine
홈 디렉터리가 /home/AdamLevine로 되어있습니다.
프롬프트가 기본값으로 바뀌었습니다.
+-----------------------------------------------------------------------------------------------+그룹 관련 명령어
① # groupadd [그룹명]
그룹추가
<예제 1> Maroon5그룹 추가 후 확인
※ Maroon5 그룹은 패스워드가 /etc/gshadow 파일에 저장되어 있고 GID는 503이며 해당 그룹에 속한 멤버는 없습니다.
② # groupmod -g [그룹명]
그룹 정보 수정
-g 그룹의 GID를 변경
<예제 1> Maroon5 그룹의 GID를 600으로 변경
③ # groupdel [그룹명]
그룹 삭제
<예제 1> Maroon5 그룹 삭제
+-----------------------------------------------------------------------------------------------+
<문제 1>
BLACKPINK 그룹에 계정을 생성하여 JISOO, JENNY, ROSE, RISA 계정들의 그룹들을
BLACKPINK에 소속되어있도록 설정하세요.
But 그룹의 GID와 사용자 계정의 GID가 다르다면 그 그룹은 사용자 계정의
기본 그룹/주 그룹이 아닙니다.!!
BLACKPINK GID는 502이지만 JISOO GID는 500입니다.
즉, JISOO의 기본 그룹은 BLACKPINK가 아닙니다.
+-----------------------------------------------------------------------------------------------+
④ # groups [계정명]
해당 계정을 대표하는 GID(주 그룹)와 소속되어있는 그룹(보조 그룹)을 보여줍니다.
→ 결과
[계정명] : [GID(주 그룹)][보조 그룹1][보조 그룹2][보조 그룹3] . . .
<예제 1>
※ 정리 ※
/etc/passwd : 사용자 기본 정보 파일 (계정명, UID, GID, 홈 디렉터리, 로그인 쉘 등)
/etc/shadow : 사용자 패스워드가 암호화되어 담기는 파일
/etc/group : 그룹 기본 정보 파일
/etc/gshadow : 그룹의 패스워드가 암호화 되어 저장되는 파일 (실제로 많이 사용하지는 않음)
★/etc/default/useradd : 사용자 계정 생성 시 기본 정보를 가지고 있는 파일
/etc/login.defs
: 시스템 사용자의 전체를 제한하기 위해 사용하는 설정 파일
패스워드 정책 설정 확인 및 vi로 변경을 할 수 있는 파일
/etc/skel : 사용자 계정 생성 시 홈 디렉터리에 기본적으로 생성되는 파일들
+-----------------------------------------------------------------------------------------------+
사용자 및 그룹 파일에 무결성 검사
1. 사용자 계정 관련 파일
# pwck (PassWord ChecK)
/etc/passwd, /etc/shadow 파일을 검사합니다.
- 필드의 설정 검사
- UID와 GID 설정 검사
- 기본 그룹의 존재 유무 검사
- 홈 디렉터리 존재 유무 검사
- 로그인 쉘 존재 유무 검사
- 패스워드가 없는 계정의 존재 유무 검사
<예제 1>
2. 그룹 계정 관련 파일
# grpck (GRoup Password ChecK)
/etc/group, /etc/gshadow 파일을 검사합니다.
- 필드의 설정 검사
- GID와 이름의 설정 검사
- 사용자와 관리자의 설정 검사
+-----------------------------------------------------------------------------------------------+
Shadow System
passwd 파일은 일반 사용자도 읽을 수 있는 파일이므로 보안상 문제가 생길 수이으므로
shadow파일에 암호를 저장하기 위한 방법입니다.
Shadow System 기능 [비활성화 / 활성화]
#pwunconv
Shadow System 기능을 비활성화
<예제 1>
패스워드가 passwd 파일에 노출됩니다.
shadow기능이 비활성화 되어있는 상태에서는 암호를 업데이트(변경)할 수없습니다.
#pwnconv
Shadow System 기능을 활성화
<예제 1>
shadow기능을 사용하여 x로 패스워드를 숨깁니다.
'서버 > Linux' 카테고리의 다른 글
[Linux] UMASK & 특수 허가권 (SetUID, SetGID, StickyBit) (0) | 2017.10.11 |
---|---|
[Linux] 파일의 권한 (소유권 & 허가권) (0) | 2017.10.11 |
[Linux] 사용자 계정 관리 (1) (0) | 2017.10.11 |
[Linux] 쉘 스크립트 (0) | 2017.09.28 |
[Linux] 쉘 환경 변수 (0) | 2017.09.28 |