파일(디렉토리의) 소유권과 퍼미션, 속성, SetUID  | 
| 
 작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀  | 
| 
 파일(디렉토리의) 소유권과 퍼미션, 속성, SetUID  | 
  |    | 
| 
  ㅇ 생성되는 파일의 퍼미션 결정 : umask - umask값 확인 : umask - umask 설정 : umask 022 
| umask | 
000 | 
001 | 
002 | 
022 |  
| 파일 | 
666 | 
666 | 
664 | 
644 |  
| 디렉토리 | 
777 | 
776 | 
775 | 
755 |    |   
 ㅇ 파일과 디렉토리의 소유권과 소유그룹 설정 : chown - 특정파일의 소유자(소유그룹) 변경 : chown bible:bible FILE - 특정디렉토리의 소유자(소유그룹)변경 : chown bible:bible DIR - 특정디렉토리내의 모든 파일들의 소유자(소유그룹)변경 : chown ?R bible:bible DIR - 특정디렉토리내의 특정파일들에 대해서만 소유자(소유그룹)변경 :  chown ?R bible:bible DIR --from=nobody:nobody
 
  ㅇ 파일의 퍼미션과 디렉토리의 퍼미션의 의미와 차이점 - 별도 표를 보면서 설명
 
  ㅇ 파일(디렉토리)의 퍼미션 변경 : chmod - 별도 표를 보면서 설명
 
  ㅇ 파일의 속성 확인과 변경 : lsattr, chattr - 퍼미션과는 다른 의미로서 중요한 파일이나 디렉토리에 설정가능함. - 속성종류 : a속성, c속성, d속성, 속성, s속성, S속성, u속성등 - 별도 페이지 참조
 
  ㅇ SetUID, SetGID, 그리고 Sticky Bit - 별도 페이지 참조 
 
  | 
| 
 파일과 디렉토리의 퍼미션의 의미와 차이점  | 
  |    | 
| 
  ㅇ 퍼미션의 예 -rwxrwxrwx    1    root    root    345   1월  22  13:36   FILE drwxrwxrwx    3    root    root    4096   1월  23  13:25   DIR 
ㅇ 파일과 디렉토리의 퍼미션의 의미와 차이점 
| 퍼미션 | 
일반적인 의미 | 
파 일 | 
디 렉 토 리 |  
| r | 
읽기(read)권한 | 
파일의 내용을 읽을 수 있음 | 
ls로 디렉토리내용 확인가능 |  
| w | 
쓰기(write)권한 | 
파일에 저장할 수 있고, 파일을 삭제할 수 있음 | 
디렉토리에 파일저장, 디렉토리이름변경,  디렉토리삭제등이 가능 |  
| x | 
실행(execution)권한 | 
파일을 실행할 수 있음 | 
cd로 디렉토리로 접근가능 (ls로 디렉토리의 내용을 확인할 수 있는 것은 아님) |  
| s | 
SetUID, SetGID권한 | 
SetUID : 파일의 소유자 권한으로 실행됨 SetGID : 파일의 그룹권한으로 실행됨 |  
| t | 
Sticky Bit권한 | 
공유디렉토리로 사용됨 |    |   
 
  | 
| 
 퍼미션(permission)의 의미와 설정(chmod)  | 
  |    | 
| 
 
  ㅇ 퍼미션의 예 -rwxr-xr-x    1    root    root     345   1월  22  13:36   hello drwxr-xr-x    3    root    root    4096   1월  23  13:25   chaeya 
-         r    w   x        r   w   x         r  w  x -----     ------------      ------------      ---------- 파일유형        소유자권한         그룹권한         그외일반사용자 |    |   
ㅇ 파일유형(type) 
- : 일반파일임을 의미함. b : 블록형 특수 장치파일(주로 디스크, 예: /dev/sda, /dev/hda등) c : 문자형 특수 장치파일(주로 입출력에 사용되는 특수파일, 예 : /dev/console등) d : 디렉토리를 의미함. l : 심볼릭 링크파일임을 의미함. p : 파이프파일임을 의미함. s : 소켓파일임을 의미함.(예 : /tmp/mysql.sock등) 
  ㅇ 퍼미션의 다양한 표현 
2진수 8진수 퍼미션 2진수 8진수 퍼미션 000 -> 0 -> - - - 100 -> 4 r - - 001 -> 1 -> - - x 101 -> 5 r - x 010 -> 2 -> - w ? 110 -> 6 r w - 011 -> 3 -> - w x 111 -> 7 r w x 
    | 
| 
 파일의 속성  | 
  |    | 
| 
  ㅇ 파일의 속성 - 퍼미션과는 별도로 존재하고 별도의 의미를 가짐 - 특정파일에 대하여 삭제불가능, 추가만 가능등의 설정을 할 수 있음. 
ㅇ 속성의 종류 - a 속성 : 파일에 내용추가만 가능, 삭제불가능, 주로 로그파일등에 설정함. - c 속성 : 커널에 의해 자동압축된 상태로 저장됨. 읽을때에는 압축해제됨 - d 속성 : dump로 백업이 되지 않도록 함. - i 속성 : 파일의 변경, 삭제, 이름변경, 내용추가, 링크파일생성등을 하지 못함. - s 속성 : 파일 삭제가 될 경우에 해당 블록이 0으로 셋팅되어 그블록에 쓰기가 발생함. - S 속성 : 파일의 내용이 변경될 경우에 디스크동기화가 발생함. - u 속성 : 파일삭제시 내용이 저장되어 삭제되기 전의 데이터 복구가 가능함. 
ㅇ 속성 확인 방법 - lsattr 명령어를 사용함 
ㅇ 속성 설정(부여) 방법 - chattr +속성 파일명 - chattr +속성1속성2… 파일명 - chattr ?R +속성 디렉토리명 
ㅇ 부여된 속성제거 방법 - chattr ?속성 파일명 - chattr ?속성1속성2… 파일명 - chattr ?R ?속성 디렉토리명 
 
  | 
| 
 SetUID, SetGID, Sticky Bit  | 
  |    | 
| 
  ㅇ 의 미 - SetUID : 일반적으로는 파일을 실행시키면, 실행시킨 사용자의 권한으로 실행이 되지만, SetUID가 설정된 파일을 실행하면 파일의 소유자 권한으로 실행이됨. 
- SetGID : 일반적으로는 파일을 실행시키면, 실행시킨 소유그룹의 권한을 가지게 되지만,  SetGID가 설정된 파일을 실행하면 파일의 소유그룹권한을 가지게됨. 
- StickyBit : 공유디렉토리의 의미임. StickBit이 설정된 디렉토리에 파일을 생성하면  생성한 사람의 소유로 생성됨. 삭제 또한 생성한 사람과 root만이 가능함. 한마디로 공유디렉토리로 사용하기 위한 용도임.
 
  ㅇ 설정방법 - SetUID(SetGID, StickyBit)은 일반 퍼미션과는 별도로 그 퍼미션자리가 존재함. - SetUID 설정 : chmod 4xxx 파일명 (xxx는 일반퍼미션) - SetGID 설정 : chmod 2xxx 파일명 (xxx는 일반퍼미션) - StickyBit설정 : chmod 1xxx 디렉토리명 (xxx는 일반퍼미션) * SetUID와 SetGID를 동시에 설정 : chmod 6xxx 파일명 (xxx는 일반퍼미션)  
ㅇ설정확인 : ls ?l -rwsr-xr-x 1 root root 42972 Jan 10 10:45 FILE1 -rwxr-sr-x 1 root root 1422 Jan 10 10:45 FILE2 -rwsr-sr-x 1 root root 142972 Jan 10 10:45 FILE3 drwxrwxrwt 10 root root 4096 Feb 8 16:48 tmp 
ㅇ참고사항  - SetUID, SetGID, StickyBit는 해당 자리의 일반퍼미션에 실행퍼미션이 있어야만 적용됨. - SetUID(SetGID, StickyBit)는 대부분 소문자로 표기됨. - 만약 대문자로 표기되어 있다면 설정은 되어 있지만, 일반퍼미션에 실행퍼미션이 설정되어 있지 않기 때문임. 
 
  | 
|   | 
  |