OS/linux

linux 파일의 권한

철무니 2016. 9. 27. 20:50
반응형

이번 포스트에서는 리눅스 파일들의 권한에 대해서 포스트 하도록 하겠습니다.


권한에 대해서 설명하기 전에 잠시 저희가 확인할 수 있는 파일의 옵션들에 대해서 말씀드리겠습니다. ls -l 옵션을 쓰면 파일의 상세한 정보를 볼 수 있습니다.



위의 사진은 file 파일의 상세정보 입니다. 순서대로 설명드리면


1 : 파일의 타입

- 디렉터리 파일 : d

- 일반 파일 : -

- 링크 파일 : l

- 장치 파일 : b, c

2 : 권한 (permission)

3 : 링크 파일의 갯수 (하드링크)

4 : 파일의 소유자

5 : 파일의 그룹

6 : 파일의 크기

7 : 파일의 생성 시간

8 : 파일의 이름


이 정도가 되겠습니다. 이번 포스트에서는 2번 저 권한에 대해서 하려고 잠시 파일의정보에 대해 말씀드렸는데 알아야 할 사항이니까 한번 적어봤어요.


권한이라고 하는 저 rw-r--r-- 가 뭔가 하면

rw- 과 r-- 과 r-- 이렇게 3개로 나눌 수 있습니다.

각각 1,2,3번으로 번호를 매긴다면 1번은 파일의 소유자의 권한, 2번은 그룹의 권한, 3번은 그외(other) 사용자의 권한을 나타냅니다.

모든 권한이 허용되는 것은 rwx 인데 r은 읽기권한, w는 쓰기권한, w은 실행권한을 뜻합니다. -는 권한이 제한된다는 뜻이겠죠.


고로 rw-r--r--를 해석하자면

파일의소유자는 읽기와 쓰기가 가능하고, 그룹사용자는 읽기만 가능하며 other 사용자는 읽기만 가능하다. 라는 뜻입니다.


처음의 권한이 rw-r--r-- 인 이유는 일반 파일의 기본 권한설정이 그렇게 되있기 때문입니다. 일반파일의 기본권한은 rw-, 디렉터리 파일의 기본권한은 rwx 입니다.

여기서 의문점이 하나 생길 수 있죠. 일반파일의 기본권한이 rw-인데 왜 그룹과 other사용자는 r-- 인가요?..


이것의 해답은 바로 umask에 있습니다. umask는 기본권한에서 022만큼 빼줍니다.

여기서 022는 권한의 8진수 숫자표현인데 권한을 8진수 숫자로 표현하면 다음과 같습니다.


rwx --> 111 --> 7

rw- --> 110 --> 6

r-x --> 101 --> 5

r-- --> 100 --> 4

-wx --> 011 --> 3

-w- --> 010 --> 2

--x --> 001 --> 1

--- --> 000 --> 0


즉 파일의 기본권한은 666이라 원래라면 rw-rw-rw- 가 맞을테지만 umask로 인해 그룹과 other에서 2만큼 빼주기 때문에 644 즉, rw-r--r--가 되는 것 입니다.

디렉터리파일의 경우 777-022 = 755 (rwxr-xr-x)가 되겠죠.


※ umask는 변경이 가능합니다!

ex) umask 021


파일의 권한을 바꾸는 작업도 가능합니다.

필요한 명령어는 chmod 입니다.


chmod <path>

ex) chmod u=rw,g=,o=r file1

(풀이 : file1에 대하여 파일소유자는 읽고쓸수있고, 그룹은 권한이없고 other사용자는 읽기만 가능하게 변경)

u : user / g : groub / o : ather / a : all


8진수로도 가능합니다.

ex) chmod 744 file1

(풀이 : 744 는 rwxr--r-- 입니다. 즉, file1에 대하여 소유자는 모든권한이 있고 그룹과 other 사용자는 읽기만 가능하게 변경)



이렇게 chmod 명령어로 권한이 바뀐게 보이시나요?


이상으로 리눅스 권한에 대한 포스트를 마치겠습니다!

반응형