linux 파일의 권한
이번 포스트에서는 리눅스 파일들의 권한에 대해서 포스트 하도록 하겠습니다.
권한에 대해서 설명하기 전에 잠시 저희가 확인할 수 있는 파일의 옵션들에 대해서 말씀드리겠습니다. 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 명령어로 권한이 바뀐게 보이시나요?
이상으로 리눅스 권한에 대한 포스트를 마치겠습니다!