초보리눅스

HOME > 초보리눅스
초보리눅스| 리눅스 초급자들을 위한 기초지식을 제공하는 곳입니다.
 
파일(디렉토리의) 소유권과 퍼미션, 속성, SetUID
조회 : 26,051  


파일(디렉토리의) 소유권과 퍼미션, 속성, SetUID

작성자 : (주)수퍼유저코리아, http://www.superuser.co.kr 서버팀

파일(디렉토리의) 소유권과 퍼미션, 속성, SetUID

top


ㅇ 생성되는 파일의 퍼미션 결정 : 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
- 별도 페이지 참조


파일과 디렉토리의 퍼미션의 의미와 차이점

top


ㅇ 퍼미션의 예
-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)

top



ㅇ 퍼미션의 예
-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

 

파일의 속성

top


ㅇ 파일의 속성

- 퍼미션과는 별도로 존재하고 별도의 의미를 가짐
- 특정파일에 대하여 삭제불가능, 추가만 가능등의 설정을 할 수 있음.

ㅇ 속성의 종류
- 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

top


ㅇ 의 미

- 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)는 대부분 소문자로 표기됨.
- 만약 대문자로 표기되어 있다면 설정은 되어 있지만, 일반퍼미션에 실행퍼미션이 설정되어 있지 않기 때문임.


 

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1286


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수