post by WHITEHATS
웹기반 정보보안 엔지니어 과정 160216 10번째 강의
7.사용자 계정 관리
7.사용자 계정 및 그룹
•목적
- 사용자 식별 → 인증
- 사용자 별 환경 제공
- 보안성 향상
•사용자 계정 및 그룹 관리 파일
위에 있는 4가지는 계정정보고 그 아래는 계정 환경설정파일이다.
7.사용자 계정 관리 파일 (/etc/passwd)
•확인
- [root@localhost ~]# cat /etc/passwd
계정에 정보가 여러가지 있다는 것을 알 수 있다.
①root ②:x ③:0 ④:0 ⑤:root ⑥:/root ⑦:/bin/bash
7번필드에 /sbin /nologin 입력하면 shell을 주지 않겠다는 것임..
로그인해도 shell 사용 못함.
7.사용자 계정 관리 파일 (/etc/shadow)
•확인
- [root@localhost ~]# cat /etc/shadow
vim으로 보면 색깔 구분되서 보기 편함 ㅇㅇ..
①root ②:$6$NAzqsXeFGHz3Hlp3$kS2BgO…③:16692 ④:0 ⑤:99999 ⑥:7 ⑦: ⑧: ⑨:
sha-512가 지원안되는 곳은 암호화 종류를 바꿔줘야 한다.
실습 ~
sha-512 -> md5
계정을 만들어보자!
!!가 비밀번호가 아직 설정되지 않았다란 말.
비밀번호 설정 할꺼임
md5로 바꿔서 hash_id가 1로 되있는것을 확인할 수 있다.
다시 sha512로 바꿔준다. (md5 -> sha-512)
계정 id_test1 새로 만들어 준다. 비밀번호까지~
hash_id가 6으로 다시 변한걸 볼 수 있다.
7.사용자 그룹 관리 파일 (/etc/group)
•확인
- [root@localhost ~]# cat /etc/group
grep -w에 -w는 저 단어 그대로 찾아라 라는 뜻이다.
①root ②:x ③:0 ④:
7.사용자 그룹 관리 파일 (/etc/gshadow)
•확인
- [root@localhost ~]# cat /etc/gshadow
gshadow확인
①root ②: ③: ④:
7.사용자 계정 및 그룹
•사용자 계정 및 그룹 관리 명령어
7.사용자 계정 관리 명령어 (useradd=adduser)
•용도
- 사용자 계정 생성
•사용법
- [root@localhost ~]# useradd [옵션] [계정 이름]
- 옵션을 설정하지 않으면 “/etc/default/useradd”에 지정된 기본 값으로 생성 됨
test계정 생성
계정확인
홈디렉터리 home 생김 bash쉘을 사용해서 로그인하도록 되어있다.
shadow로 확인중.. 7 -> 유예기간
계정만료일 설정을 해보겠다. -e 사용
확인가능
•/etc/default/useradd
- useradd명령으로 계정을 생성할 때 설정되는 기본 정책이 설정된 파일
•확인
- [root@localhost ~]# cat /etc/default/useradd
INACTIVE 에 -1이 있는건 만료일은 안쓰겠다는 것.
vim으로 들어가서
0이면 계정못쓰게 바로 막아버리겠다.
3일 주려면 3넣으면 된다.
패스워드 만료일을 16년 03월 01로 하겠다.
기본쉘을 sh로 바꾸겠다.
:wq 누르고 종료
mail을 확인 할 수 있다. mail있는 사람도 있고 없는 사람도 있다.
mail을 안받으려면 위에 vim에서 맨아래 no로 바꾸고 기존 계정에 있는 메일을 지우려면
를 입력해주면 된다. (dev 장치 디렉터리, null은 데이터가 폐기되는 쓰레기통이라고 생각해도 된다.)
계정하나 더 만들어주고 확인! 기본쉘 바뀐거 확인할수 있다.
shadow명령을 이용해서 차이점 확인!!
•/etc/login.defs
- 시스템에서 생성되는 전체 사용자 계정의 기본 정책이 설정된 파일
•확인
- [root@localhost ~]# cat /etc/login.defs
주석 풀려있는건 설정을 바꿀 수 있는 환경설정 값이다.
환경설정 목록중에 사용하기 싫은것은 주석처리 하면 된다.
발송되는 mail의 기본 저장되는 디렉터리도 변경할 수 있다.
PASS_MIN_LEN은 값을 바꿔도 안바뀐다.
왜냐면 리눅스 자체 패스워드 프로그램이 있어서임..
패스워드 길이 바꾸려면 리눅스 보안 프로그램에서 환경설정을 바꿔야 한다.
UMASK는 권한 (권한은 뒤에서 배운다) -> 홈디렉터리의 기본권한이라고 생각하면 된다!
밑에 3개 노란색 글자 부분은 암호 부분이다.
md5로 바꾸면 SHA512가 md5로 바뀌고 맨아래 no가 yes로 바뀐다.
7.사용자 계정 관리 명령어 (usermod)
•용도
- 사용자 계정의 설정 변경
•사용법
- [root@localhost ~]# usermod [옵션] [계정명]
test계정 확인하고 group도 확인한다. ktest의 group도 확인해본다.
test 그룹에 ktest 그룹을 넣어줄것이다.
test에 권한을 바꿔주면 ktest계정에도 똑같이 권한이 적용된다.
7.사용자 계정 관리 명령어 (passwd)
•용도
- 사용자 계정의 패스워드 생성 및 설정 변경
•사용법
- [root@localhost ~]# passwd [옵션] [계정명]
관리자 계정에서 test계정의 비밀번호를 삭제하겠다.
GUI 모드에서도 바로 확인가능하다!
test1의 계정의 비밀번호를 변경할 수 있다.
ktest계정으로 푸티 실행하고 test1계정으로 접근해서 바뀐 비밀번호를 넣으면 로그인성공한다!
exit 치면 기존 계정으로 돌아갈 수 있다.
root 계정에서 계정을 잠글 수도 있다.
ktest에서 접근이 되지 않는다.
root계정에서 비밀번호 잠금을 해제 할 수 있다.
물론 ktest에서도 다시 정상 로그인을 할 수 있다.
test1계정의 비밀번호 기본 정책을 확인할 수 있다.
암호화에 대한 기본설정은 기본설정파일에 있다.
자세한 설정 변경하려면 아래 명령어로 ~!
7.사용자 계정 관리 명령어 (chage)
•용도
- 사용자 계정의 패스워드 설정 변경
•사용법
- [root@localhost~]# chage [옵션] [계정명]
실습!
패스워드를 5일 이후에 변경할 수 있도록 하고, 100일 이내에 변경해야만 하도록 설정하며,
만기일 10일 이전에 패스워드 변경을 하도록 메시지를 보내고,
계정의 사용은 2016/02/20까지로 제한
(test 계정)
확인
패스워드 마지막 변경날짜
패스워드 만료일 -> 100일 후
패스워드 유예기간 : 기본정책 그대로 따라와서 never
계정 만료일 : 2016/02/20 확인
패스워드 최소 유지일 : 5일
패스워드 최소 사용해야되는 일 : 100일
패스워드 만료에 대한 경고일(메세지보냄) : 10일 이전
7.사용자 계정 관리 명령어 (userdel)
•용도
- 사용자 계정 삭제
•사용법
- [root@localhost ~]# userdel [옵션] [계정명]
7.사용자 그룹 관리 명령어 (groups)
•용도
- 사용자 그룹의 정보 확인
•사용법
- [root@localhost ~]# groups [계정명]
- 계정명을 지정하지 않으면 현재 계정의 사용자 그룹 정보를 확인 함
- 계정명을 지정하면 지정된 계정의 사용자 그룹 정보를 확인 함
7.사용자 그룹 관리 명령어 (groupadd)
•용도
- 사용자 그룹 생성
•사용법
- [root@localhost~]# groupadd [옵션] [계정명]
gtest1의 사용자 그룹을 만들것이다.
확인또한 가능
그룹 하나 더 만들것임. gtest2 그룹으로.!
1000번에 gtest3을 만들라고 하는데 이미 gid가 있다고 메세지 나옴
그래서 중복 허용해줄거임 ㅇㅇ
gtest2랑 gtest3이랑 1000번으로 중복되어있음
groupadd -og 사용!!!
500번 아래로 gid를 정의 하려면 -r옵션을 사용할 수 있다.
왜 499부터 쓸수 없었나 보려고 했는데 이미 다른 그룹명을 가지고 있었음
곧 -r옵션으로 gid 주려고 하면 사용할 수 있는 최대 gid를 가질 수 있다.
7.사용자 그룹 관리 명령어 (groupmod)
•용도
- 사용자 그룹의 설정 변경
•사용법
- [root@localhost~]# groupmod [옵션] [계정명]
groupmod는 그룹 gid변경도 할수 있고 중복 gid변경도 허용 가능하다!!!!!
7.사용자 그룹 관리 명령어 (gpasswd) (일반적으로 그룹의 비밀번호를 주지 않는다, gpasswd는 관리자 지정 및 추가랑 소속원 추가 및 사용을 주로 사용한다.)
•용도
- 사용자 그룹의 패스워드 설정
- 사용자 그룹의 관리자 지정 및 추가
- 사용자 그룹의 멤버 추가 및 삭제
•사용법
- [root@localhost~]# gpasswd [옵션] [계정이름] [그룹 이름]
root계정에서 2차 그룹을 생성해준다~
그리고 ktest랑 test를 리눅스 그룹에 소속시켜보자~
ktest를 리눅스 그룹의 관리자로 지정해 줄꺼야~
그래서 test계정을 빼버릴꺼야 ~
먼저 ktest계정을 하나 켜주고!
test계정을 지우려면 권한이 없어서 test계정을 지울수가 없다.
다시 root계정으로 들어가서 ktest계정에 권한을 준다!!
ktest가 권한업 된것을 확인!
test계정을 지울수 있다.
7.사용자 그룹 관리 명령어 (groupdel)
•용도
- 사용자 그룹 삭제
•사용법
- [root@localhost~]# groupdel [그룹 이름]
이상태에서
test1을 지우려고 하면 안지워진다. 왜냐하면 test2가 이차그룹으로 있기 때문!!
그래서 되도록이면 이차그룹으로 그룹만들어서 사용해라~
7.사용자 계정 관리 파일 (/etc/skel)
•용도
- 사용자 계정의 홈 디렉터리에서 제공 할 기본 환경설정 파일의 위치 지정
- 사용자 계정을 생성 했을 때 홈 디렉터리에 복사될 파일의 위치가 지정 됨
- 사용자 홈 디렉터리의 초기 환경 제공을 위해 사용 됨
•확인
- [root@localhost~]# ls /etc/skel
기본 환경설정 파일들이 포함되어 있다.
계정생성할때마다 skel에 있는 파일들이 자동생성된다!
실습!~
skel 디렉터리에 111, 222, 333 파일을 생성해준다!
skel_test라는 계정을 생성해보자
확인해보면 111, 222, 333이 있는걸 확인할 수 있다.
새 계정을 만들때마다 skel에 있는 파일이 배포됨을 확인할 수 있다.
그래서 주로 환경설정 파일이나, 메뉴얼들이 저장되있다.
7.사용자 계정 관리 실습
User : testuser
UID : 1200
GID : tg (tg라는 그룹을 만들어야됨 1차 그룹으로 지정)<- 미리 해야하는 작업
Shell : sh
HOME : /hosting
Skel : /skelsam
Auto Creating Directory : public_html
Auto Creating File : .sam
1.모든 작업은 root 계정으로 root의 홈 디렉터리 경로에서 설정
2.계정 생성은 옵션을 이용해서 한 줄로만 작업할 것
3.모든 작업이 완료된 후 검사 받고 작업한 내용 삭제할 것
실습 명령어
groupadd tg
mkdir /hosting
mkdir /skelsam
cp -r /etc/skel/ /skelsam/
ls -a /skelsam/
mkdir /skelsam/public_html
touch /skelsam/.sam
useradd -u 1200 -g tg -s /bin/sh -d /hosting/testuser -mk /skelsam testuser
확인과정
cat /etc/passwd
ls -a /hosting/testuser
7.vi editor & 사용자 계정 관리 실습 (숙제!!)
1./etc/inittab 파일을 최 상위 디렉터리로 복사
2.vi로 /inittab 파일을 열고 vi 편집기를 이용해 /home/ktest 디렉터리에 크기가 0인 파일 a, b, c, d, e를 만든 후 /inittab의 20번째 라인 밑에 /home/ktest 디렉터리의 파일내용을 삽입
3.파일 안에 있는 내용 변경 : etc -> secret, init -> sleep
4.5 ~ 12 번째 라인을 2번째 라인 밑에 복사
5.편집중인 파일을 /test 디렉터리 밑에 sam.test 파일 명으로 저장
6.현재까지 작업한 모든 내용을 새로운 파일(/usertest/sample)로 저장하고 vi를 종료
7.위에서 만든 파일(sample)과 동일한 내용을 가지는 파일을 ktest 사용자의 home 디렉터리에secret 이라는 파일 명으로 생성
8.위에서 만든 secret 파일을 vi로 열고 5번째 줄 밑에 리눅스의 IP 출력 내용을 삽입한 후, linux 사용자의 home 디렉터리에 final 파일명으로 저장하고 vi를 종료
9.사용자 홈 디렉터리의 생성 위치가 /export/home/ 인 test1 사용자 계정 생성
10. linux 계정의 홈 디렉터리의 위치를 /export/home/으로, shell 을 tcsh로 변경
11. /etc/skel 디렉터리의 내용을 /samskel로 복사한 후, skel 디렉터리가 /samskel인 user2 생성하되계정 생성 후 홈 디렉터리에 public_html 이름의 디렉터리 생성
12. user2 의 그룹을 ktest 그룹으로 변경
하얀모자의 whitehat
'▶ 웹기반 정보보안 과정 > Linux' 카테고리의 다른 글
160217 11번째강의 - 2 (0) | 2016.02.18 |
---|---|
160217 11번째강의 - 1 (0) | 2016.02.18 |
160215 아홉번째강의 - 2 (0) | 2016.02.16 |
160215 아홉번째강의 - 1 (0) | 2016.02.16 |
리눅스(Linux) - 리다이렉션 (0) | 2016.02.14 |