2016. 3. 4. 14:03ㆍ네트워크 보안 수업/리눅스
권한(permission)
#> ls -l file1
-rw-r--r-- 1 root root 0 3월 4 14:08 file1
- rw-r--r-- 1 root root 0 3월 4 14:08 file1
- --------- - ---- ---- - ------------ -----
1 2 3 4 5 6 7 8
1: file type
- : 일반 파일
d : 디렉토리 파일
l : 링크 파일
b,c : 장치 파일
2: permission
3: 링크 파일의 갯수
4: 파일의 소유자
5: 파일의 소유그룹
6: 파일의 크기
7: 파일의 생성 시간
8: 파일의 경로
subject : user process --------------- object : file
action3가지
파일의 권한
-r : read
-w : write
-x : excute
rw- r-- r--
--- --- ---
1 2 3
1: 소유자(user)
2: 소유그룹(group)
3: 그외(other)
파일의 권한 수정: chmod
-파일의 소유자와 root사용자만이 해당 파일의 권한을 수정
1. 심볼릭 방식(symbolic)
#> chmod <path>
u + r
g - w
o = x
ex) user에게는 실행권한을 추가, 그외 사용자는 어떠한 권한도 주지 않는다.
#> chmod u+x,o-r file1
#> ls -l file1
-rwxr----- 1 root root 0 3월 4 14:08 file1
ex) 사용자와 사용그룹은 읽고, 쓸수 있는 권한이 있고 그 외 사용자는 읽기만 가능.
#> chmod u=rw,g=rw,o=r file1
#> ls -l file1
-rw-rw-r-- 1 root root 0 3월 4 14:08 file1
2. 옥탈(octal): 8진법으로 권한을 표시
--- --- ---
u g o
000 000 000
rw- r-- r--
--- --- ---
110 100 100
--- --- ---
6 4 4
000: --- --- ---
100: --x --- ---
110: --x --x ---
111: --x --x --x
211: -w- --x --x
777: rwx rwx rwx
r: 4
w: 2
x: 1
ex) 사용자는 모든 권한을 가지고 있고, 사용그룹과 그외 사용자는 읽기 권한만을 갖는다.
#> chmod 744 file1
#> ls -l file1
-rwxr--r-- 1 root root 0 3월 4 14:08 file1
기본권한: umask
-0022(default)
-일반 파일: -rw-r--r--
666-022 = 644
-디렉토리 파일: drwxr-xr-x
777-022 = 755
[실습]: 실행권한 확인
#> cd /tmp
#> cp /usr/bin/cat .
#> ./cat /etc/passwd
...
#> chmod 644 ./cat
#> ls -l ./cat
#> ./cat /etc/passwd
-bash: ./cat: 허가 거부
[실습]: 쓰기 권한 확인(일반 사용자)
#> touch file1
#> chmod 444 file1
#> ls -l file1
#> vi file1
사용자, 그룹 관리 명령어
- /etc/passw
- /etc/shadow
- /etc/group
1. 사용자 추가
#> useradd <user_name>
- user01 사용자 추가
#> useradd user01
사용자는 생성과 동시에 그룹도 생성
사용자는 해당 사용자 그룹에 자동으로 가입
#> passwd <user_name>
#> passwd user01
2. 사용자 확인
#> cat /etc/passwd
#> tail -t /etc/passwd
...
user01:x:1000:1000::/home/user01:/bin/bash
user01:x:1000:1000: :/home/user01:/bin/bash
------ - ---- ---- ----- ------------ ---------
1 2 3 4 5 6 7
1: user name
2: user passwd
3: uid(user id) uid가 0번이면 root로 취급
4: gid(group id)
5: comment
6: user home directory
7: user shell
3. 사용자 수정 : usermod
-/etc/passwd 파일을 직접 수정
ex) 다른 그룹에 추가(/etc/group)
[실습]: 사용자 추가
-기본그룹
#> useradd user02 -c 'test account' -d /user02 -g /user02 -g 1000 -M -s /bin/sh -u 2000
#> tail -2 /etc/passwd
user01:x:1000:1000::/home/user01:/bin/bash
user02:x:2000:1000:testaccount:/user02:/bin/sh
#> tail -2 /etc/group
sshd:x:74:
user01:x:1000:
-추가그룹
#> useradd user02 -c 'test account' -G 1000 -u 3000
#> tail -3 /etc/passwd
user01:x:1000:1000::/home/user01:/bin/bash
user02:x:2000:1000:testaccount:/user02:/bin/sh
user03:x:3000:3000:test account:/home/user03:/bin/bash
#> tail -5 /etc/group
postdrop:x:90:
postfix:x:89:
sshd:x:74:
user01:x:1000:user03
user03:x:3000:
[실습]: 사용자 수정
#> usermod -c 'modify account' user03
#> tail -3 /etc/passwd
user01:x:1000:1000::/home/user01:/bin/bash
user02:x:2000:1000:testaccount:/user02:/bin/sh
user03:x:3000:3000:modify account:/home/user03:/bin/bash
4. 사용자 삭제 : userdel
#> userdel <user_name>
-홈디렉토리가 존재하지 않는 경우
#> userdel user02
-홈 디렉토리가 존재하는 경우
#>userdel user03
or
#> userdel -r user03
5. 사용자 설정 파일
- /etc/skel/* 파일들을 사용자의 홈 디렉토리로 복사
[실습]: 명령어를 사용하지 않고 사용자 생성
- user name : user02(2000)
- group name : user02(2000)
1. 기본그룹생성
#> vi /etc/group
...
user02:x:2000
:wq!
2. 사용자 생성
#> vi /etc/passwd
...
user02:x:2000:2000:manual user:/home/user02:/bin/bash
:wq!
3. 사용자 홈 디렉토리 생성
#> mkdir /home/user02
4. 사용자 설정 파일 복사
#> cp /etc/skel/.* /home/user02
5. 확인
#> id user02
'네트워크 보안 수업 > 리눅스' 카테고리의 다른 글
네트워크보안 수업 9일차-코리아 정보보안 IT학원 (0) | 2016.03.09 |
---|---|
네트워크보안 수업 8일차-코리아 정보보안 IT학원 (0) | 2016.03.08 |
네트워크보안 수업 5일차-코리아 정보보안 IT학원 (0) | 2016.03.03 |
네트워크보안 수업 4일차-코리아 정보보안 IT학원 (0) | 2016.03.02 |
네트워크보안 수업 3일차-코리아 정보보안 IT학원 (0) | 2016.02.29 |