CentOS 싱글모드 / 패스워드 관리( chage, 사용자 설정 정보 변경) / 기본정책( /etc/login.defs )에 대해서 정리한다.
※ 싱글모드( single mode )
- 해당 싱글모드 내용은 CentOS 7버전에 대한 내용이다.
( 버전이 다르다면 방법 또한 다르다 )
- CentOS 7버전부터는 복구모드( rescue mode ) 또는 비상모드( emergency mode )라고도 부른다.
- root 패스워드를 잃어버렸을때 유용하게 쓰인다.
1. selinux=disabled 일때 사용하는 패스워드 변경 방법
( selinux=enforcing이면 이 방법은 적용되지 않는다 )
1). CentOS 부팅을 하게되면 bootloader(GRUB2) 화면이 나오는데
이때 e키를 눌러준다.
2). 화면이 나오면 방향키를 이용해 맨 밑으로 내리면 아래와 같은 화면이 나오고
ro를 rw로 수정하고 rhgbquiet를 init=/bin/bash로 수정 해준 후에
ctrl + x 키를 눌러준다.
3). 그러면 아래와 같이 명령 프롬프트가 뜨게 되고 깨짐을 방지하기 위해서
export LANG=C 를 입력해주고 passwd 명령어로 root의 비밀번호를 바꾼다.
( root의 비밀번호를 바꾸기 때문에 passwd만 입력 해주면 된다 )
4). 재부팅을 위해서 touch ./autorelabel 을 입력하고
exec /sbin/init 을 입력 해주면 재부팅이 된다.
로그인이 되지 않는다면 오타가 있거나 selinux=enforcing 되있을 확률이 크다.
2. selinux=enforcing 일때 사용하는 패스워드 변경 방법
1). 위 방법과 동일하게 CentOS를 부팅하게 되면 나오는 bootloader(GRUB2) 화면에서
e 키를 눌러서 화면을 바꾼다.
2). selinux=disabled 일때는 ro와 rhgb quiet의 내용을 수정 했지만
여기서는 ro만 rw init=/sysroot/bin/sh로 수정 해주고 ctrl + x 를 누른다.
3). 패스워드 변경을 위해서 chroot /sysroot를 입력하고
여기서는 root 패스워드를 변경하기 위해서 passwd root를 입력한다.
( 화면 깨짐을 방지하려면 여기서도 export LANG=C를 입력 해주면 된다 )
4). touch ./autorelabel을 입력하고 exit 입력 해준다.
그리고나서 reboot 명령어를 이용해서 재부팅 해준다.
( reboot 명령어가 되지 않는다면 직접 vmware를 restart 시켜준다 )
5). 재부팅이 된 후에 바뀐 root 패스워드로 로그인하면 정상적으로 로그인이
되는걸 확인 할 수 있다.
* selinux 관련된 설정은 /etc/sysconfig/selinux를 보면 알 수 있다.
( vi 명령어를 통해서 /etc/sysconfig/selinux 안에 내용을 살펴봤다 )
※ 패스워드 관리
1. 패스워드 설정 정보 변경 : chage <option> <user_name>
-l <user_name> 패스워드 설정 정보 확인
( chage -l을 이용해서 linux01 사용자의 패스워드 설정 정보를 확인 했는데
/etc/shadow에서 내용을 확인 할때보다 더 보기 좋게 나온걸 알 수 있다 )
-m <number> <user_name> 패스워드 변경 최소일을 변경
-M <number> <user_name> 패스워드 변경 최대일을 변경
( chage -M을 이용해서 linux01 사용자의 패스워드 변경 최대일을 변경 해봤다 )
-W <number> <user_name> 패스워드 변경 경고일을 변경
( chage -W 를 이용해서 linux01 사용자의 패스워드 변경 경고일을 변경하고
chage -l linux01을 이용해서 변경 내용을 확인 해봤다 )
-I <number> <user_name> 비활성화 기간 변경( inactive )
( 비활성화 기간을 5일로 변경 했더니 패스워드 만료일부터 5일이 적용된걸 확인 할 수 있다 )
-E <number> <user_name> 계정만료 일자 변경 ( expiredate )
( chage -E를 이용해서 linux01 사용자의 계정만료 일자를 변경하고 그 내용을 확인 해봤고
변경을 할때는 위에 그림처럼 1970년 1월 1일을 기준으로 해서 일수를 이용해도 되고
2017-11-11 같이 날짜를 직접 입력 해줘도 된다 )
* 패스워드 비활성화 기간과 계정만료는 chage, useradd, usermod 명령어에서 변경 할 수 있다.
* /etc/default/useradd를 보면 비활성화 기간, 계정만료일자의 설정 기본값이 있다.
( vi /etc/default/useradd를 통해서 비활성화 기간, 계정만료일자가 사용하지 않는걸로 되있는걸 확인 할 수 있다 )
2. 사용자 설정 정보 변경
- useradd <option> <number> <user_name>
- usermod <option> <number> <user_name>
-f 비활성화 기간 설정(변경)
#>usermod -f 10 linux01
-e 계정만료일자 설정(변경)
#>usermod -e 17300 linux01
#>usermod -e 2017-11-11 linux01
* useradd와 usermod에서 똑같은 옵션을 사용한다.
3. 기본 정책
- /etc/login.defs
( vi /etc/login.defs를 입력하면 위와 같은 내용을 확인 할 수 있다 )
* /etc/login.defs의 내용은 주석(#)을 제외하고 메일, 패스워드, 사용자 UID, SYS_UID, GID, SYS_GID,
사용자 홈 디렉터리 생성 여부, 사용자 홈 디렉터리 권한 관련 UMASK, 사용자 삭제시 그룹 삭제 여부에
관한 기본 정책 내용이 들어있다.
* /etc/shadow의 내용을 보면 패스워드 앞에 $6$이라고 표시 되있는걸 볼 수 있는데
이 부분을 보면 패스워드를 SHA-512 해쉬함수를 통해 암호화 했다는걸 알 수 있다.
* 해쉬함수가 고정된 출력값을 출력하기 때문에 발생하는 보안에 취약한 부분 때문에
패스워드를 암호화 할때는 해당 패스워드에 랜덤값을 같이 집어넣어 해쉬함수를 돌린다.
( $6$ 뒤쪽에 보면 FKzd...$부분이 해쉬함수에 들어가는 랜덤값이다 )
* VMWare 네트워크 타입 - Host-only, Bridged, NAT
( 가상환경에서는 보통 이 3개의 타입을 제공한다 )
'프로그래밍 > LINUX' 카테고리의 다른 글
[LINUX] Kali 2.0 한글 깨짐 해결 / 한글 자판키 사용 방법 (0) | 2017.03.27 |
---|---|
[LINUX 12일차] CentOS 네트워크(동작 확인, 설정) / 압축(gzip, bzip2, xz) / 아카이브(tar) & 압축 (0) | 2017.03.25 |
[LINUX 10일차] CentOS 디렉터리 파일 권한 / 패스워드 관리(passwd) (0) | 2017.03.23 |
[LINUX 9일차] CentOS 그룹 관리(그룹에 사용자 추가, 사용자별 그룹 확인) / 소유권(소유권 변경, 일반파일 권한) (0) | 2017.03.22 |
[LINUX 8일차] CentOS 그룹 관리(그룹 확인, 그룹 삭제, 그룹 생성) (0) | 2017.03.21 |
댓글