Home » OS » 리눅스 » 리눅스 chmod 명령어와 숫자 권한을 알아봅시다.

리눅스 chmod 명령어와 숫자 권한을 알아봅시다.

아마존 라이트 세일 등으로 워드 프레스를 구축했다면, 리눅스 명령어인 chmod나 chown은 써 보셨으리라 생각이 듭니다. 여기에서는 매우 위험한 옵션인 -R은 다루지 않습니다. 하위 폴더까지 적용하기 때문에, 돌이킬 수 없습니다. 막 쓸 생각을 안 하는 것이 좋습니다. 이 글에서는 기본만 다루도록 하겠습니다.

리눅스에서 그룹에 대한 이해를 하면 조금 더 쉽게 다가오니, 아래 글을 읽어보시면 좋습니다.

  • 리눅스 사용자 그룹을 조회해 봅시다. 링크

먼저, chmod는 file mode bits를 바꾸는 명령이입니다.

[그림 1] chmod 명령어

이 글에서는 옵션은 다루지 않고 mode만 다룹니다. chmod 755 file_name 등으로 많이 쓸 것이기 때문입니다. chmod MODE file의 형태로 많이 쓰니, 이 부분만 보도록 하겠습니다. 제 홈 폴더의 .ssh 디렉토리로 들어가 보겠습니다.

[그림 2] authorized_keys 파일의 권한

여기에는 authorized_keys 파일이 있습니다. rw- — — 라고 되어 있는데요. 소유자인 cho는 읽기와 쓰기가 가능합니다. 하지만, 소유자가 아닌 cho 그룹에 속해 있으면 —, 다른 사람이면 — 권한을 가집니다. 아무런 권한이 없다는 의미입니다.

해당 파일은 600 권한이 있습니다. 저 앞의 숫자 3개가 무엇인가?

[그림 3] r, w, x에 대응되는 비트

먼저, 각 숫자의 3개 비트는 각각 r, w, x에 대응됩니다. 예를 들어, 6의 경우, 비트 r과 비트 w가 켜져 있는 것입니다. 각각, 읽기 권한과 수정 권한이 있다는 이야기입니다. 5는 어떤가요? 5를 2진수로 표현하면 101입니다.

[그림 4] 5의 의미

r 비트가 켜졌습니다. 그리고 x 비트가 켜졌는데요. 각각 읽기 권한과 실행 권한이 있다는 의미입니다. 실행 파일에서 많이 보이는 권한입니다. 그러면 600의 의미는 무엇일까요? 앞의 숫자는 소유자의 권한을, 2번째 숫자는 소유 그룹의 권한을, 3번째 숫자는 다른 사람의 권한을 의미합니다.

[그림 5] mode 600

그림으로 그리면 위와 같습니다. owner에게 r, w 권한이 있고 나머지는 아무것도 없는 것입니다. 고로, 소유자만 읽기 쓰기 가능한 권한이라는 의미입니다.


이제, 파일 2.txt에 대한 정보를 보겠습니다. ls -ail | grep 2.txt를 입력해 봅시다.

[그림 6] 2.txt에 대한 정보

그러면, 권한 정보도 같이 나오는데요. rw- rw- r–입니다. 664 권한입니다. root 유저에게는 읽기, 쓰기 권한이 있습니다. 그리고 cho 그룹에 속한 유저에게는 읽기, 쓰기 권한이 있습니다.

이제 chmod 644 2.txt로 파일의 mode bits를 바꾼 다음에 2.txt에 대한 정보를 출력해 보겠습니다. 그랬더니, rw- r– r–가 나옵니다.

[그림 7] mode 644

이는, owner에게 읽기 쓰기 권한이 주어지고, group과 다른 사람에게는 읽기 권한만 주어진 것을 의미합니다. cho 유저로 2.txt 파일에 쓰기를 시도해 보겠습니다.

[그림 8] cho 유저로 2.txt에 쓰기 시도

거부당합니다. 당연합니다. cho는 root가 아니기 때문입니다. redirect로 echo 12345의 결과를 2.txt에 쓰려고 시도했습니다. 권한이 없기 때문에 거부한 것입니다. 여기서 질문. 755 권한도 생각보다 많이 보이는데요. 무엇을 의미할까요?

[그림 9] mode 755

똑같이 해석하시면 됩니다. 소유자에게는 r, w, x 권한이 있고, 소유 그룹과, 다른 사람에게는 r, x 권한이 있는 것입니다.

Leave a Comment

1 + 6 =