2023년 8월 25일 금요일

리눅스 퍼미션(Permission) - chmod / chown

리눅스 퍼미션(Permission) - chmod / chown




퍼미션(권한)이란?


Permission, 사전적인 의미로 허락 또는 허가를 뜻하는 영어 단어이며 멀티유저 운영체제인 리눅스에서 허가 되지 않은 사람이 파일이나 디렉터리에 접근하는 것을 막고 파일과 디렉터리에 대한 접근 허가나 허락을 해주는 역할을 하는 것을 말합니다.

Owner

Group

Other

Owner와 Group은 파일소유자자신과 자신이 속한그룹. Other은 제3자, 웹사이트 방문객은 제3자로 nobody로 취급.

r

w

x

r

w

x

r

w

x

r은 파일 읽기(4), w는 파일 쓰기(2), x는 파일 실행(1)

7

5

5

파일소유자는 그것을 읽고 쓰고 실행시킬 수 있지만, 제3자는 읽고 실행만 시킬 수 있다.

7

7

7

제3자도 쓰기 권한이 주어진다.


d rwx r-x r-x
파일 유형 소유자 권한 그룹 권한 다른 사용자 권한



리눅스 파일의 종류


리눅스의 파일 종류는 크게 일반 파일, 디렉터리 파일, 특수 파일 3가지로 구성됩니다.
문자 의미
- (일반 파일) 각종 텍스트 파일, 실행 파일, 이미지 파일 등등을 리눅스에서 일반 파일에 해당
d (디렉터리 파일) 디렉터리 파일이며 윈도우에서의 폴더와 같은 의미
b, c, l (특수파일) 여러 종류가 있으며 장치를 표현한 파일



파일 사용 권한


문자 권한
r 읽기 4
w 쓰기 2
x 실행 1

파일에 퍼미션을 줄 때 이 값들을 이용해 퍼미션을 지정할 수 있습니다.
퍼미션 8진수 의미
--- 0 아무 권한 없음
--x 1 실행 권한만 있음
-W- 2 쓰기 권한만 있음
-WX 3 실행, 쓰기 권한이 있음
r-- 4 읽기 권한만 있음
r-x 5 읽기, 실행 권한만 있음
rw- 6 읽기, 쓰기 권한만 있음
rwx 7 읽기, 쓰기, 실행 권한만 있음



퍼미션 변경하기


8진법 모드
흔하게 볼 수 있는 8진수를 사용한 권한 설정 방법

사용법 : chmod [옵션] [모드] [파일 또는 폴더]
사용법 : chmod [옵션] [8진수 모드] [파일 또는 폴더]

옵션
-R : 하위에 위치한 파일과 디렉토리 권한을 변경한다.
-v : 현재 실행되고 있는 모든 파일들을 나열한다.
-c : 실제로 변경된 파일들만 자세하게 출력한다.
-R옵션을 사용하면 하위 디렉토리의 모든 디렉토리 및 파일의 퍼미션이 변경됩니다.

- 각 퍼미션 기호를 숫자로 변환 합니다. (r = 4, w = 2, x = 1)
예) r-x 인 경우 401

-변환한 숫자를 합산합니다.
예)401 인 경우 4 + 0 + 1 = 5

예) rwxr-xr-x 이면 rwx  r-x  r-x 세자리씩 끊고, 4+2+1  | 4+0+1 | 4+0+1  숫자변환 뒤 합산하면 "755" 라는 퍼미션값이 나옵니다.


문자열 모드
chmod 명령어는 문자를 통해 권한을 부여할 수 있다. 간단하게 사용할 수 있는 8진법 모드보다 더 직관적이다.

사용법 : chmod [레퍼런스] [연산자] [모드] [파일 또는 폴더]

레퍼런스는 아래와 같이 구분된다.

u: 사용자(for owner), 파일의 소유자를 말한다.
g: 그룹(for group), 해당 파일의 그룹 멤버인 사용자
o: 다른 사람들(for others), 그 파일의 소유자 또는 그룹의 멤버가 아닌 사용자
a: 위의 셋 모두(for all) 포함, ugo와 동일하다.


연산자는 아래와 같이 구분할 수 있다.

+: 해당 권한을 추가한다.
-: 해당 권한을 제거한다.
=: 해당 권한을 지정한 권한으로 변경한다.


모드는 아래와 같이 구분할 수 있다.

r: 읽기(read), 파일을 읽거나 디렉터리 안의 내용들을 볼 수 있다.
w: 쓰기(write), 파일이나 디렉터리에 쓴다.
x: 실행(execute), 파일을 실행할 수 있다.

예시)
# user 에게 test 파일에 대한 읽기, 쓰기 권한 부여
$ chmod u+rw test


# user 에게 test 파일에 대한 쓰기 권한만 부여
# group 에게 test 파일에 대한 읽기 권한 부여
$ chmod u=w, g+r test


# user 에게 읽기, 쓰기, 실행 권한 부여
# group, other에게 읽기, 실행 권한 부여
$ chmod 755 test



소유자 변경하기


사용법 : chown [옵션] [소유자:소유그룹] [파일 또는 폴더]

옵션
-R : 하위 경로의 소유자를 모두 변경합니다.
-f : 소유자 변경이 안 될때 오류 메시지 표출합니다.
-c : 변경된 파일을 자세히 표출합니다.
-v : 작업상태를 출력합니다.
--help : 도움말을 보여줍니다.
--version : 비전 정보를 보여줍니다.