모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

14강 / 전체 14강

파일 소유권과 허가권 ① — rwx 구조와 8진수, chmod

13분 읽기 조회 0

[2과목 1장 01절] ls -l 출력 해석과 rwx 권한의 의미, 8진수 변환, chmod 기호·숫자 모드를 실행 결과로 확인합니다.

🎯 이 강의 학습 목표

이 강부터 2과목 리눅스 운영 및 관리로 들어갑니다. 이 강은 1장 01절 파일 소유권과 권한 설정의 첫 번째입니다. 이 강을 마치면 ls -l 출력의 맨 앞 10자리를 완전히 해석할 수 있고, rwx를 8진수로 변환할 수 있으며, chmod의 기호 모드와 숫자 모드를 자유롭게 쓸 수 있고, 무엇보다 파일과 디렉터리에서 rwx의 의미가 어떻게 다른지 설명할 수 있게 됩니다.

권한은 2차 시험에서 가장 많이 틀리는 영역입니다. 출제 비중 자체는 4% 안팎이지만, 계산이 얽혀 있어 정답률이 낮습니다. 반대로 말하면 제대로 익혀 두면 확실한 득점원이 됩니다. 이 교재가 권한에 세 개 강을 배정한 이유입니다.

💡 ls -l 출력의 맨 앞 10자리

모든 것은 ls -l의 첫 열에서 시작합니다.

$ ls -l
-rw-r--r-- 1 chung chung    0 Sep 12 21:02 a.txt
drwxr-xr-x 2 chung chung 4096 Sep 12 21:02 d1
lrwxrwxrwx 1 chung chung    5 Sep 12 21:02 s1 -> a.txt

맨 앞 문자열은 10자리이며 1 + 3 + 3 + 3으로 끊어 읽습니다.

자리의미-rw-r--r--의 경우
1번째파일 유형- → 일반 파일
2~4번째소유자(user)의 권한rw- → 읽기·쓰기
5~7번째그룹(group)의 권한r-- → 읽기만
8~10번째기타(other)의 권한r-- → 읽기만

1번째 자리의 파일 유형 문자는 시험에 그대로 나옵니다.

문자유형문자유형
-일반 파일b블록 장치(디스크)
d디렉터리c문자 장치(터미널)
l심볼릭 링크p파이프(FIFO)
s소켓——

위 출력에서 a.txt는 -(일반 파일), d1은 d(디렉터리), s1은 l(심볼릭 링크)입니다. 그리고 심볼릭 링크의 권한이 항상 lrwxrwxrwx라는 점도 눈여겨보십시오. 링크 자체의 권한은 의미가 없고 실제 접근 권한은 원본 파일이 결정하기 때문입니다.

세 주체의 적용 순서도 중요합니다. 내가 소유자면 소유자 권한만 적용되고, 소유자가 아니면서 그룹에 속하면 그룹 권한, 둘 다 아니면 기타 권한이 적용됩니다. 순서대로 하나만 적용되며 합쳐지지 않습니다. 그래서 소유자 권한이 ---이고 기타 권한이 rwx여도, 소유자는 그 파일을 읽지 못합니다.

💡 r·w·x의 의미 — 파일과 디렉터리가 다르다

이 단원에서 가장 중요한 내용입니다. 같은 글자라도 파일에 붙었을 때와 디렉터리에 붙었을 때 뜻이 완전히 다릅니다.

권한파일에서디렉터리에서
r(4)파일 내용을 읽기디렉터리 안의 목록 보기(ls)
w(2)파일 내용을 수정디렉터리 안에 파일 생성·삭제·이름 변경
x(1)파일을 실행디렉터리 안으로 들어가기·통과하기(cd, 경로 접근)

세 가지 중요한 결과가 따라옵니다.

첫째, 디렉터리에 x가 없으면 내용을 읽을 수 없습니다. r이 있어 이름 목록은 보이지만, 그 안의 파일에 접근하려면 디렉터리를 통과해야 하는데 그것이 x 권한이기 때문입니다. 잠시 뒤 실습에서 직접 확인합니다.

둘째, 파일을 지우는 권한은 파일이 아니라 디렉터리에 있습니다. 읽기 전용(r--) 파일이라도 그 파일이 들어 있는 디렉터리에 w 권한이 있으면 삭제할 수 있습니다. 파일 삭제는 "디렉터리에서 이름을 빼는 작업"이기 때문입니다. 이 원리를 막기 위해 나온 것이 16강에서 배울 스티키 비트입니다.

셋째, 디렉터리는 보통 x가 함께 붙습니다. 디렉터리의 기본 권한이 drwxr-xr-x(755)인 이유이며, 파일의 기본 권한(644)에 x가 없는 것과 대비됩니다.

💡 8진수 변환 — 계산의 핵심

권한 3개(rwx)를 2진수 3자리로 보면 각 자리가 8진수 한 자리가 됩니다.

권한2진수8진수권한2진수8진수
---0000r--1004
--x0011r-x1015
-w-0102rw-1106
-wx0113rwx1117

외울 것은 r=4, w=2, x=1 세 개뿐입니다. 나머지는 더하면 됩니다. rw-는 4+2=6, r-x는 4+1=5, rwx는 4+2+1=7입니다.

이제 10자리를 세 덩어리로 끊어 각각 변환하면 세 자리 8진수가 됩니다.

표기소유자그룹기타8진수주로 쓰이는 곳
-rw-r--r--rw-=6r--=4r--=4644일반 파일 기본값
-rwxr-xr-xrwx=7r-x=5r-x=5755실행 파일·디렉터리 기본값
-rw-------rw-=6---=0---=0600개인 키·비밀 파일
-rwxrwxrwx777777모두 허용(보안상 금지)
-rw-rw-r--664664그룹 협업 파일

644·755·600·777 네 개는 반드시 즉시 떠올릴 수 있어야 합니다. 시험에서 -rwxr-xr-- 같은 표기를 주고 8진수를 묻거나 그 반대로 묻습니다.

💡 chmod — 기호 모드와 숫자 모드

chmod(change mode)는 권한을 바꾸는 명령입니다. 두 가지 표기법이 있습니다.

숫자 모드는 세 자리 8진수를 그대로 줍니다. chmod 755 file처럼 씁니다. 기존 권한을 통째로 덮어씁니다.

기호 모드는 대상 · 연산자 · 권한을 조합합니다.

대상의미연산자의미
u소유자(user)+권한 추가
g그룹(group)-권한 제거
o기타(other)=해당 권한으로 지정(나머지는 제거)
a전체(all, = ugo)——

예를 들어 chmod u+x file은 소유자에게 실행 권한을 추가하고, chmod go-w file은 그룹과 기타에서 쓰기 권한을 제거하며, chmod a=r file은 모두에게 읽기만 남깁니다. 쉼표로 여러 개를 이어 쓸 수도 있습니다(chmod u+x,g-r file).

두 모드의 결정적 차이는 이렇습니다. 숫자 모드는 전체를 새로 지정하고, 기호 모드의 +·-는 기존 권한을 유지한 채 일부만 바꿉니다. "기존 권한을 건드리지 않고 실행 권한만 추가"하려면 chmod +x여야 하고, chmod 755로는 다른 권한까지 바뀝니다.

주요 옵션은 -R(하위까지 재귀 적용)입니다. chmod -R 777 / 같은 명령은 시스템을 망가뜨리므로 절대 실행하면 안 됩니다. 권한 변경은 파일 소유자와 root만 할 수 있습니다.

💻 실습으로 확인하기

아래는 /tmp/lm14에서 실제 실행한 결과입니다.

$ chmod 755 a.txt && ls -l a.txt
-rwxr-xr-x 1 chung chung 0 Sep 12 21:02 a.txt

$ chmod 644 a.txt && ls -l a.txt
-rw-r--r-- 1 chung chung 0 Sep 12 21:02 a.txt

$ chmod 600 a.txt && ls -l a.txt
-rw------- 1 chung chung 0 Sep 12 21:02 a.txt

앞의 변환표가 그대로 확인됩니다. 755 → rwxr-xr-x, 644 → rw-r--r--, 600 → rw-------입니다. 숫자와 문자를 번갈아 보며 눈에 익히는 것이 가장 빠른 학습법입니다.

$ chmod u+x,g-r a.txt && ls -l a.txt
-rwx------ 1 chung chung 0 Sep 12 21:02 a.txt

$ chmod a=r a.txt && ls -l a.txt
-r--r--r-- 1 chung chung 0 Sep 12 21:02 a.txt

기호 모드의 동작이 드러납니다. 직전 상태가 rw-------(600)였는데, u+x로 소유자에 x가 붙어 rwx가 되었습니다. g-r은 그룹에서 r을 빼라는 뜻인데 원래 없었으므로 변화가 없습니다. 결과는 -rwx------(700)입니다. +·-는 나머지 권한을 건드리지 않는다는 점을 확인할 수 있습니다.

반면 a=r은 모든 대상에 대해 r만 남기고 나머지를 지웁니다. 소유자에 있던 w와 x가 모두 사라져 -r--r--r--(444)가 되었습니다. =는 지정, +는 추가라는 차이가 이 두 줄에 그대로 나타납니다.

이제 가장 중요한 실험입니다. 디렉터리에서 x 권한을 빼면 어떻게 되는가를 확인합니다.

$ touch d1/in.txt
$ chmod 644 d1              # 디렉터리에서 x 제거 (rw-r--r--)

$ ls d1
in.txt                       # 목록은 보인다 (r 권한이 있으므로)

$ cat d1/in.txt
cat: d1/in.txt: Permission denied     # 내용은 못 읽는다 (x가 없으므로)

$ chmod 755 d1 && ls d1
in.txt                       # 복구 후 정상

이 네 줄이 이 강에서 가장 중요한 출력입니다. 디렉터리 d1에서 x를 뺐더니, ls d1로 이름 목록은 여전히 보입니다. r 권한이 살아 있기 때문입니다. 그런데 cat d1/in.txt는 Permission denied로 실패합니다. 파일 자체의 권한은 그대로인데도 말입니다.

이유는 d1/in.txt라는 경로에 도달하려면 d1을 통과해야 하고, 그 통과 권한이 바로 x이기 때문입니다. 그래서 디렉터리의 x를 실행 권한이 아니라 접근(통과) 권한이라고 부르는 것입니다. 시험에서 "디렉터리의 x 권한의 의미"를 물으면 "디렉터리 안으로 들어가거나 경로로 통과할 수 있는 권한"이 정답입니다.

⚠️ 시험에 나오는 함정

함정정확한 사실
소유자 권한이 없어도 기타 권한이 있으면 접근된다소유자면 소유자 권한만 적용. 합산되지 않음
디렉터리의 x는 실행 권한이다들어가기·통과하기 권한
읽기 전용 파일은 삭제할 수 없다디렉터리에 w가 있으면 삭제 가능
심볼릭 링크의 권한이 접근을 결정한다링크는 항상 lrwxrwxrwx. 원본 권한이 결정
chmod 755와 chmod +x는 같다숫자는 전체 지정, +x는 추가만
chmod a=r는 읽기를 추가한다=는 지정 — 나머지 권한은 제거됨
일반 사용자도 남의 파일 권한을 바꿀 수 있다소유자와 root만 가능

📝 핵심 요약 — 암기표

항목핵심
10자리 구조유형(1) + 소유자(3) + 그룹(3) + 기타(3)
유형 문자- 일반 · d 디렉터리 · l 링크 · b 블록 · c 문자 · p 파이프 · s 소켓
8진수r=4 · w=2 · x=1 → 더하기
자주 쓰는 값644(파일 기본) · 755(실행·디렉터리) · 600(비밀) · 777(금지)
디렉터리의 rwxr=목록 보기 · w=생성·삭제 · x=들어가기·통과
삭제 권한파일이 아니라 디렉터리의 w가 결정
권한 적용 순서소유자 → 그룹 → 기타 중 하나만 적용(합산 없음)
chmod 기호대상 u g o a · 연산 + 추가 / - 제거 / = 지정
chmod 옵션-R 재귀 — chmod -R 777 / 절대 금지
변경 권한자소유자와 root만

다음 15강에서는 소유권을 바꾸는 chown·chgrp와, 새 파일의 기본 권한을 결정하는 umask 계산을 다룹니다. umask는 시험에서 계산 문제로 직접 출제됩니다.

📋 실전 문제

1. -rwxr-xr--를 8진수로 올바르게 표현한 것은?
① 755    ② 754    ③ 745    ④ 764

2. 권한 644를 문자로 표현한 것으로 알맞은 것은?
① rw-r--r--    ② rw-rw-r--    ③ r--r--r--    ④ rwxr--r--

3. 디렉터리에 부여된 x 권한의 의미로 가장 적절한 것은?
① 디렉터리를 실행 파일로 동작시킨다.
② 디렉터리 안의 파일 목록을 볼 수 있다.
③ 디렉터리 안으로 들어가거나 경로로 통과할 수 있다.
④ 디렉터리 안에 파일을 생성할 수 있다.

4. 권한이 -r--r--r--인 파일 data.txt가 있다. 이 파일을 삭제할 수 있는 조건으로 옳은 것은?
① 파일에 w 권한이 있어야만 삭제할 수 있다.
② 파일이 들어 있는 디렉터리에 w 권한이 있으면 삭제할 수 있다.
③ 파일에 x 권한이 있어야 삭제할 수 있다.
④ root만 삭제할 수 있고 일반 사용자는 불가능하다.

5. 현재 권한이 -rw-------인 파일에 chmod a=r을 적용한 결과는?
① -rw-r--r--    ② -r--r--r--    ③ -rwxr--r--    ④ -rw-rw-rw-

6. ls -l 출력의 첫 글자가 c인 파일의 유형은?
① 일반 파일    ② 디렉터리    ③ 블록 장치    ④ 문자 장치

7. 기존 권한을 그대로 두고 소유자에게만 실행 권한을 추가하는 명령은?
① chmod 700 file    ② chmod u+x file
③ chmod u=x file    ④ chmod a+x file

8. 파일 소유자가 lms이고 권한이 ----rwxrwx일 때, 소유자 lms가 이 파일을 읽으려 하면?
① 소유자이므로 모든 권한이 적용되어 읽을 수 있다.
② 기타 권한이 rwx이므로 읽을 수 있다.
③ 소유자 권한이 ---이므로 읽을 수 없다.
④ 그룹 권한이 rwx이므로 읽을 수 있다.

✅ 정답과 해설

1. 정답 ②
세 덩어리로 끊으면 rwx=7, r-x=5, r--=4이므로 754입니다. ①의 755는 기타가 r-x일 때, ③의 745는 그룹이 r--이고 기타가 r-x일 때, ④의 764는 그룹이 rw-일 때입니다.

2. 정답 ①
6=rw-, 4=r--, 4=r--이므로 rw-r--r--입니다. ②는 664, ③은 444, ④는 744에 해당합니다. 644는 일반 파일의 기본 권한이므로 반드시 외워 두십시오.

3. 정답 ③
디렉터리의 x는 들어가기·통과 권한입니다. ②의 목록 보기는 r, ④의 파일 생성은 w의 역할입니다. ①처럼 디렉터리를 실행 파일로 동작시킬 수는 없습니다. x를 빼면 ls로 이름은 보여도 그 안의 파일에는 접근할 수 없게 됩니다.

4. 정답 ②
파일 삭제는 디렉터리에서 이름을 제거하는 작업이므로, 권한의 근거는 파일이 아니라 디렉터리의 w입니다. 그래서 읽기 전용 파일도 상위 디렉터리에 쓰기 권한이 있으면 지워집니다. 이 허점을 막는 장치가 16강에서 배울 스티키 비트입니다.

5. 정답 ②
=는 지정이므로 대상 전체(a=ugo)의 권한이 r만 남고 나머지는 제거됩니다. 소유자에 있던 w도 사라져 -r--r--r--(444)가 됩니다. ①은 chmod 644의 결과이고, a+r이었다면 기존 권한을 유지한 채 읽기만 추가되어 -rw-r--r--가 되었을 것입니다.

6. 정답 ④
c는 문자 장치(character device)로 터미널·/dev/null 같은 것이 해당합니다. ③의 블록 장치는 b이며 디스크가 대표적입니다. 두 문자는 37강 장치 파일 단원에서 다시 다룹니다.

7. 정답 ②
u+x가 기존 권한을 유지한 채 소유자에게 실행 권한만 추가합니다. ①의 숫자 모드는 전체를 700으로 덮어써 그룹·기타 권한이 모두 사라집니다. ③의 u=x는 소유자 권한을 x 하나로 지정해 읽기·쓰기가 사라지고, ④의 a+x는 모든 대상에 실행 권한을 추가합니다.

8. 정답 ③
권한은 소유자 → 그룹 → 기타 순으로 확인해 해당하는 하나만 적용되며 합산되지 않습니다. lms는 소유자이므로 소유자 권한 ---만 적용되어 읽을 수 없습니다. 기타 권한이 rwx라는 사실은 소유자에게 아무 도움이 되지 않습니다. 권한 설정에서 흔히 저지르는 실수이자 시험 단골 함정입니다.

📚 참고 자료

관련 주제

  • 허가권
  • rwx
  • 8진수 권한
  • chmod
  • ls -l
  • 디렉터리 권한
  • 파일 유형
  • 권한 계산
  • 자격증
  • 자격증 강의
  • 리눅스마스터 2급 완전정복
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

리눅스마스터 2급 완전정복

이 강의가 속한 시리즈는 총 14강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...