디렉토리 및 파일의 권한과 소유
- 시스템에 있는 모든 파일과 디렉토리는 접근 할 수 있는 권한 및 소유권 부여
- 파일이나 디렉토리의 접근을 제한 한것을 허가권이라 한다
- 파일이나 디렉토리의 소유권한을 소유권 이라고 한다.(계정,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

+ Recent posts