Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

정리하는 공간

리눅스) 파일의 접근 권한 본문

리눅스 기초

리눅스) 파일의 접근 권한

개구리집 2022. 5. 12. 10:13
반응형

1. 파일의 속성과 접근 권한

1) 리눅스는 파일에 무단으로 접근하는 것을 방지하고 보호하는 기능을 제공한다.

 

2) 파일과 디렉터리 속성을 봤을 때(ls -l 명령어) 나오는 8개의 필드는 의미를 담고 있다.

(파일기준)

- , d 파일의 종류(-:일반파일, d:디렉터리)
rw-r--r-- 파일을 일고 쓰고 실행할 수 있는 접근 권한
1 하드링크 수
root 파일 소유자의 로그인 ID
root 파일 소유자의 그룹 이름
692252 파일크기
5월 15 20 날짜
/etc/services 파일명

 

3) 2번째 필드에서 읽고, 쓰고, 실행할 수 있는지의 권한을 확인할 수 있고, 파일과 디렉터리가 의미하는 바는 다르다.

권한 파일 디렉터리
r 파일을 읽거나 복사 ls 명령으로 디렉터리 목록 확인
w 파일 수정, 삭제, 이동 가능 파일 생성, 삭제 가능
x 파일 싱행 가능 cd명령으로 디렉터리 이동, 복사 가능

 

4) 권한을 확인해 보는 2번째 필드를 소유자, 그룹, 기타사용자 3개로 나누어 권한을 확인한다.

(위 사진의 파일 기준)

소유자 그룹 기타사용자
rw- r-- r--

해석)

소유자는 실행 권한이 없으며 읽고 쓰기 권한이 있다.

그룹은 쓰기, 실행 권한이 없으며 읽기 권한이 있다.

기타사용자는 쓰기, 실행 권한이 없으며 읽기 권한이 있다.

 

번외) 그룹을 왜 쓰는가? 권한 관리를 쉽게 하기 위해서다.

 

2. 파일, 디렉터리 생성시 기본 값

파일 생성시 권한을 부여하는 기본 값이 숫자로 정해져 있다. (이유는 보안을 위해서이다.)

 

우선 r, w, x 와 같이 권한을 부여할 때 각 권한마다 숫자가 부여된다.

r w x
4 2 1

왜 4, 2, 1의 숫자인지 그 이유는 생략하겠다.

 

그럼 rwx, r--, r-- 의 권한을 가질 경우를 숫자로 나타내면 744인 것이다.

 

일반 파일과 디렉터리를 생성시 이 숫자로 기본값이 정해져 생성된다.

 

1) 일반 파일의 경우 666 ( rw-rw-rw- 권한이 기본값)

하지만 파일을 새로 만들어보면 위와 같이 rw-r--r-- 로 기본값이 정해져 있는 것을 볼 수 있다.

 

그 이유는 umask 값이 022로 설정되어 있기 때문이다.

 

그럼 여기서 umask 값이 무엇일까?

 

umask 는 파일, 디렉터리를 생성할 때 권한을 제한할 수 있는 설정 값이다.

 

즉, umask의 기본값이 022로 설정되어 있다는 건 w 권한을 제한 한다는 뜻이다.

 

그렇기 때문에 666에서 022를 뺀 값인 644로 (즉, rw-r--r--) 파일 권한이 설정되어 생성되는 것이다.

 

2) 디렉터리의 경우 777 (rwxrwxrwx 권한이 기본값)

디렉터리 경우에도 위에서 설명한 바와 같이 777이 기본값임에도 위에 처럼 나오는 이유는 umask 값 때문이다.

 

디렉터리 기본 값 777에서 022를 뺀 값인 755로 w권한이 제한되어 디렉터리가 생성된다.

 

umask 값은 UID 값이 199 미만이면 022, UID 값이 199 이상이면 002로 기본 값이 설정되어 있다. 자세한 건 뒤에서 다뤄보자.

vi /etc/profile /umask 에서 umask 값을 확인해 볼 수 있다.

반응형

3. 접근 권한의 변경

파일, 디렉터리의 기본 권한 값이 정해져 있지만 임의로 바꿀 수도 있다.

 

1) 숫자 모드

 

chmod 숫자 파일,디렉터리명

4(r), 2(w), 1(x) 의 숫자를 조합해 원하는 권한을 부여, 수정 할 수 있다.

 

2) 기호 모드

u g o
소유자 그룹 기타 사용자

위의 기호를 이용해 접근 권한을 변경할 수도 있다.

 

위 사진 처럼 ugo-x 를 한 번에 할 수도 있고, 따로 따로 할 수도 있다. 권한 추가는 + 권한 제한은 - 이용.

 

4. umask 기본 접근 권한 확인, 변경

위에서 언급한 뜻을 담고 있고, 기본 접근 권한을 출력하거나 변경하는 명령어다.

 

1) umask 값 변경

umask 044

umask 값을 044로 변경한 후 파일의 권한 값이 666에서 622로 바뀐 것을 확인할 수 있다.

 

umask 기본 값은 일회성 이기 때문에 로그아웃을 하면 초기화 된다. 계속 설정을 유지하고자 할 땐 /etc/profile /umask 에서 설정하자.

 

5. 특수 접근 권한 (SetUID, SetGID, 스티키 비트)

 

5-1. SetUID

해당 파일을 실행하는 동안 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행

즉, SetUID가 설정되면 일반 사용자도 root의 권한을 가질 수 있다는 것이다.

 

 

umask를 쳐보면 0022와 같이 4자리가 뜨는 것을 볼 수 있는데 이 때 첫 번째 자리가 SetUID인지, SetGID 인지 스티키 비트인지 구분짓는 자리다.

4 SetUID
2 SetGID
1 스티키 비트

 

SetUID를 설정하는 방법은 쉽다.

설정이 되면 위 사진 처럼 소유주에 실행 자리가 s로 변하는 것을 확인할 수 있다.

간혹 위의 사진처럼 대문자 S로 표시될 때도 있는데 읽기 권한이 배제되어 있을 때 이렇게 표시된다.

 

Tip : find / -user root -perm 4755 에서 setUID 설정된 파일을 확인할 수 있다.

 

5-2. SetGID

해당 파일을 실행하는 동안 파일 소유 그룹의 권한으로 실행할 수 있다.

앞의 숫자는 2로 지정하고 파일을 만들면 된다.

 

SetGID와 매우 유사하기에 방법은 생략한다.

 

5-3. 스티키 비트

1) 디렉터리에 설정

2) 디렉터리에 스티키 비트가 설정되어 있으면 이 디렉터리에는 누구나 파일을 생성할 수 있다.

3) 해당 디렉터리에서 파일을 생성하면 생성한 계정으로 소유자가 설정되고, 다른 사용자는 이 파일을 삭제할 수 없다.

4) /tmp파일이 대표적이다.

5) 스티키 비트는 접근 권한에서 맨 앞자리에 1을 설정.

기타사용자 자리에 소문자 t 생성. 대문자 T로 되어 있다는 건, 일반사용자의 실행 권한이 없다는 것.

 

Tip : /tmp파일의 경우 외부에서 접속이 가능하다. 나쁜 의도를 가진 사용자의 경우 저 파일 속에 해킹 파일을 심고, 심벌릭 링크를 걸어 둔다. 이렇게 되면 해킹의 위험이 있는데, 이때 스티키 비트를 걸어 두면 다른 사용자가 파일을 수정, 삭제하지 못하기 때문에 보안을 향상시킬 수 있다...

LIST
Comments