디렉토리 및 파일의 권한과 소유
- 시스템에 있는 모든 파일과 디렉토리는 접근 할 수 있는 권한 및 소유권 부여
- 파일이나 디렉토리의 접근을 제한 한것을 허가권이라 한다
- 파일이나 디렉토리의 소유권한을 소유권 이라고 한다.(계정,UID,GID)
★소유권 허가권
실습용
groupadd -g 600 test_user
# groupadd -g 600 test_admin
# useradd -g 600 test-user1
# useradd -g 700 test-admin1
GID에 맞게 생성 확인
허가권 소유자 소유그룹
ls -l = ll 명령어 파일리스트를 볼수 있고 허가권과 소유권 확인
chown (change ownership/소유권 변경)
형식-#chown [소유계정]:{소유그룹] [파일/디렉토리명]
#cd /home/test-user1
#touch test
#ll
useradd 로만든 test-user1에 test 파일인 리스트 확인
chown test-admin1 test // test소유자를 변경
ll
소유계정 변경 확인
chown test-admin1:test_admin testfile
소유계정과 소유그룹 변경 확인
소유계정과 소유그룹 변경 확인
형식 -#chown [소유계정]:[소유그룹] [파일/디렉토리명]
chown [계정명] [파일] //소유계정 변경
chown :[그룹명] [파일] //소유그룹 변경
허가권
- 9개 문자
- r w x r w x r w x
파일유형 사용자 그룹 기타사용자
rwx의 의미
r read 읽기
w write 쓰기
x execute 실행
- bar 해당 권한이 없는 경우
ex) rwxr-xr-x : 사용자는 읽기, 쓰기, 실행 권한을 모두 가지고 있고
그룹과 기타 사용자는 읽기와 실행권한만 있다.
rw-------: 사용자만 읽고 쓰기가 가능
ll /etc/passwd /etc/shadow
-rw-r--r--. 1 root root 1754 2017-04-10 00:21 /etc/passwd
-r--------. 1 root root 1402 2017-04-10 00:21 /etc/shadow
chmod - 허가권 변경
- 기호 모드(상대값) (symbolic mode)- 사람의 입장
- 숫자 모드(절대값) (absolute mode) -컴퓨터의 입장
chmod [옵션] [기호/숫자모드] [파일명]
-R 하위 디렉토리 및 파일까지 전부 적용
★기호 모드
+ :허가원 부여 u :사용자(소유자) 권한
- :허가원 제거 g :그룹 권한
= :허가원 유지 o :기타 사용자
s :SetUID,SetGID 권한 부여 a :사용자, 그룹, 기타 사용자 모두
t :Sticky Bit 권한 부여
ex) 허가원 rwx r-x r-x 파일명 test
-> 그룹과 기타사용자의 x(실행)권한을 제거
#chmod go-x test
-> 그룹에는 쓰기권한을 추가, 기타사용자에게 읽기, 실행권한 제거
#chmod g+w,o-rx test
기호모드로 허가권 변경 (그룹,기타사용자)
1)파일의 소유자, 그룹과 기타사용자에 실행권한 추가
# chmod u+x,g+x,o+x test
2)파일의 소유자는 모든 권한을 제거하고, 그룹은 모든권한, 기타사용자는 쓰기
권한만 추가
3) 사용자,그룹,기타 사용자 모두 읽기와 쓰기 권한만 추가
★숫자 모드
-각각의 허가권 필드를 3자리의 8진수로 표기
-완전한 표기법은 4자리이나 일반적으로 3자리 사용
ex) rwx r-x r-x
사용자 400+200+100 =700
그룹 40+10 =50
기타 사용자 4+1 =5
사용자 필드 사용자 그룹 기타사용자
자리수 421 421 421
2진수 111 111 111
8진수 7 7 7
rwx r-x r-x
111 101 101
7 5 5
r-x r-x r-x
4+1 4+1 4+1
5 5 5
test
chmod 744 test (rwx r-- r--)
ex) rwx rwx r-x (7 7 5)
UMASK - 새로운 파일/디렉토리 생성 시 기본 허가권을 결정하는 기준이 되는 값
기본값 022
파일의 기본 허가권 666
디렉토리의 기본 허가권 777
파일이나 디렉토리에서 기본 허가권에서 UMASK 값을 뺀 값이 허가권으로 결정
디렉토리 파일
기본값 777 666
UMASK 022 022
결정된허가권 755 644
기호 rwx r-x r-x rw-r--r--
#umask
0022
umask [값]
umask 007
umask
0007
디렉토리 파일
777 666 기본값
007 007 UMASK
770 660 적용값
RWX RWX --- RW- RW- ---
777 666
020 020 UMASK
757 646
RWX R-X RWX RW-R--RW-
umask가 클수록 보안이 올라간다
cd /home
# useradd -g test_admin test-admin2
test-admin2 계정이 test-admin1의 홈디렉토리 접근,읽기,쓰기가 가능 하도록 설정
단, 기타 사용자 권한은 수정x
# su - web-admin2
$ cd /home/test-admin1
$ touch test1
$ ls
test-admin2 소유자 test_admin 소유그룹
특수 권한의 종류 SetUID, SetGID, StickyBit
SetUID - 실행 파일에 한해서 설정이 가능하며, SetUID 속성이 있는 경우
실행한 사용자가 아닌 파일을 소유한 사용자의 권한으로 프로세스(프로그램)
실행된다
- 보통 root가 소유한 실행파일에 적용을 하며, 이런 경우에 해당 파일을
실행하는 순간에는 root의 권한을 가지게 된다.
#ll /etc/passwd /etc/shadow
644 400
# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2015-11-24 01:30 /usr/bin/passwd
rwxr-xr-x
SetUID 설정방법
기호모드 (u+s)
숫자모드(4000)
# cd /practice/
# mkdir SetUID
# cd SetUID/
# touch SetUID_1
# touch SetUID_2
# chmod 4644 SetUID_1
# chmod 4544 SetUID_2
실행권한이 있고 없음의 차이
실행 권한이 있는 파일 :s
없는 파일 :S
cat > SetUID_3
SetUID list file
[root@Server-A SetUID]# chmod 400 SetUID_3
[root@Server-A SetUID]# ll
su - web-admin1
$ cat /practice/test123/SetUID/SetUID_3
cat: /practice/test123/SetUID/SetUID_3: 허가 거부
#ll /bin/cat
# chmod u+s /bin/cat
chmod u+s /bin/cat 으로 허가거부 없이 파일열람 가능
원상복구
cat 파일의 SetUID 제거
chmod u-s /bin/cat
SetUID 보안해킹
su - test-admin1
whoami
who am i
계정 확인 , 계정 생성 시간 확인
R(Real)- 계정관리 기본적인 계정권한
UID - RUID(real uid) //RUID-실제 계정은 누구인가
EUID(effective uid) //EUID- 어떤 유저권한으로 프로세서를 실행하고 있는가
E(Effective)- 프로세스 권한 확인
GID - RGID //RGID- 실제 그룹이 누구인가
EGID //EGID- 어떤 그룹 권한으로 프로세서를 실행하고 있는가
'Server > Linux' 카테고리의 다른 글
xshell/ 프로세스 명령어 (0) | 2017.04.13 |
---|---|
xshell/ 사용자계정 명령어3 (0) | 2017.04.10 |
xshell/ 사용자계정 명령어2 (0) | 2017.04.07 |
xshell/ 사용자계정 명령어 (0) | 2017.04.05 |
xshell/ 환경변수 명령어 (0) | 2017.04.02 |