3. 6 (화) 정리 Linux - 파일구조와 퍼미션

Linux
04 파일구조와 퍼미션

Protection Ring

아래와 같은 링 구조가 48 계층으로 이루어짐

 

각 계층에 관여할 수 있는 계층은 인접한 계층 뿐.

º Device File
  - 유저가 H/W에 명령하는 것은 이 파일을 통해 직접 작업하는 것처럼 느끼는 것
  - 수정한 디바이스 파일이 커널을 통해 H/W에 명령
  - 장비를 사도 디바이스 파일이 없는 경우 사용 불가
º Shell
  - 유저가 치는 명령어를 받아들이는 역할

-------------------------------------------------------------------------------------------
리눅스 파일 구조

º 구조
    d     rwx r-x ---      2           root        root       4096   Dec 18  12:31       aa
파일종류 / 퍼미션 / 하드링크 수 / 소유자 / 그룹소유자 / 크기 / 마지막변경일자 / 파일명

중첩된 권한은 큰 권한을 따라간다 ----?

º 파일의 종류
 - : 일반 파일
 d : 디렉토리
 l : 링크 파일
 b : 블록 디바이스 파일
 c : 문자 디바이스 파일

- 블록 디바이스 파일은 입출력의 최소 단위가 OS에서 정한 블록 단위로만 캐시 가능
  -> 캐시가 가능하다
   * 작은 규모의 메모리 탐색은 큰 규모의 탐색보다 빠름
     -> 버퍼 컨트롤 (TTL / LRU)
     -> TTL - 메모리가 작은 곳
     -> LRU List - 선형리스트(Linked List)구조 / 메모리가 큰곳
- 문자 디바이스 파일은 순차적인 입출력을 하는 파일

º 파일이나 디렉토리에 대한 사용자의 허가정도를 나타낸다.
º 사용자는 소유자(user), 그룹소유자(group), 이외 모든 사용자 other)로 구별한다.
º 접근 권한에는 r,w,x,t 등의 권한으로 구별한다.


표기는 8진수로 표현한다.
r : 4     w : 2    x : 1
ex) rwxr-xr-x : 7 5 5
     rwxr--r-- : 7 4 4

º 퍼미션 명령
   · chmod
퍼미션 수정 명령
#chmod [옵션] [퍼미션] [파일]
- 옵션
   -R : 디렉토리인 경우 하위 디렉토리와 파일까지 수정
#chmod 755 a.txt
#chmod -R 750 aa/

대상 : u(user), g(group), o(other), a(all)
operator : +(추가), -(삭제), =(변경하지 않음)
퍼미션 : r,w,x,s,t
# chmod -R 755 ./a/
(rwxr-xr-x)
# chmod o+x,g-x a.txt
# chmod g+wx, o-w, o+x a.txt

suid와 sgid, sticky bit는 추가된 퍼미션으로 실행 및 삭제 권한을 보완한다.

s : suid나 sgid를 나타낸다. 이러한 설정 파일을 실행하면 소유자나 그룹 소유자의 
   ID로 실행된다.

- User나 Group을 대상으로 설정한다.

t : 퍼미션과 관계없이 소유자만 삭제 가능하게 할 때 디렉토리에 other 권한을 
   제한한다.

- Other을 대상으로 설정한다.

suid(4), sgid(2), stick bit(1)
suid와 sgid는 user와 group 퍼미션에 s로 표시되고
stichy bit는 other 퍼미션에 t로 표시된다.

7777 : rwsrwsrwt
4777 : rwsrwxrwx (u+s)
2777 : rwxrwsrwx (g+s)
1777 : rwxrwxrwt (o+t)

   · chown, chgrp
소유자 또는 그룹소유자 변경
#chown -R 유저명 대상
#chown -R 유저명.그룹명 대상 - 비표준 명령
#chgrp -R 그룹명 대상


+실습



설명 : 30을 출력하는 a.out 실행 파일의 퍼미션 확인


a.out의 퍼미션을 755로 변경


a.out의 그룹 실행 권한을 없애고 다른 사용자 실행 권한을 부여


새로 만든 그룹 groupA에 속한 사용자 groupA01 으로 로그인


a.out을 groupA01이 참조할 수 있는 개인 폴더로 복사 후 실행
 -> 정상 실행


a.out의 다른 사용자 실행 권한을 없애고 그룹에 실행권한 부여.
이후 a.out 실행
 -> 실행 거부



댓글

댓글 쓰기

이 블로그의 인기 게시물

Linux Server - FTP 실습 (2 / 2) : 사용자 제한 ( ftpuser / user_list )

전자서명 개념

3.27 (화) - Network (패킷 통신 - 4가지 지연)