1. 권한 (Permission)
1️⃣ 권한이란?
1) 권한(Permission)의 본질
리눅스에서 모든 파일/디렉토리는 “누가 무엇을 할 수 있는지”를 정의하는 규칙을 가짐
User / Group / Others 별로 Read / Write / Execute 권한을 나눠 관리
2) 권한 구조 (가장 중요 ⭐)
-rwxr-xr-x
# -rwx / r-x / r-x[파일타입][user][group][other]구분 | 의미 |
rwx | 소유자 |
r-x | 그룹 |
r-x | 기타 사용자 |
3) 권한 종류 (파일 기준)
권한 | 의미 |
r | 파일 읽기 |
w | 파일 수정 |
x | 파일 실행 |
4) 디렉토리에서 권한 의미 (중요 ⭐)
권한 | 의미 |
r | 목록 조회 ( ls) |
w | 파일 생성/삭제 |
x | 디렉토리 진입 ( cd) |
- x 없으면 들어갈 수 없음 (핵심 포인트)
5) 숫자 권한 (시험/실무 핵심 ⭐)
값 | 의미 |
4 | r |
2 | w |
1 | x |
⬇️ 숫자를 더해서 표현
숫자 | 권한 |
7 | rwx (4+2+1) |
6 | rw- (4+2) |
5 | r-x (4+1) |
4 | r-- |
- 예시
chmod 755 file2️⃣ chmod (권한 변경 방법)
1) 숫자 방식 (추천)
chmod 644 file
chmod 755 script.sh- 빠르고 실무에서 가장 많이 사용
2) 기호 방식
chmod +x file # 실행 추가
chmod u+x file # user에 추가
chmod g-w file # group에서 쓰기 제거
chmod o=r file # other 읽기만- u (user)
- g (group)
- o (other)
- a (all)
3️⃣ 실행 권한과 실행 방법
1) 파일 실행 방법
./script.sh
- 조건
- 실행 권한(x) 있어야 함
- 경로 지정 필요 (
./)
2) ./ 필요한 이유
script.sh # PATH에 없으면 실행 안됨- 현재 디렉토리는 기본적으로 PATH에 포함되지 않음
4️⃣ 권한 확인
1) ls -l
ls -l-rwxr-xr-x 1 root root 11 Apr 1 hello.sh
2) ls -l 출력 구조 이해
항목 | 의미 |
- | 파일 타입 |
rwxr-xr-x | 권한 |
root | 소유자 |
root | 그룹 |
11 | 파일 크기 |
날짜 | 수정 시간 |
hello.sh | 파일명 |
5️⃣ 기본 권한 패턴 (실무 중요 ⭐)
권한 | 용도 |
644 | 일반 파일 |
755 | 실행 파일 |
700 | 개인 파일 |
777 | 모든 권한 (거의 사용 금지) |
6️⃣ 추가 개념 (알아두면 좋음)
1) 소유자 변경
chown user:group file2) 기본 권한 설정 (umask)
umask7️⃣ 핵심 정리 (압축)
- 권한 = user / group / other
- r=4, w=2, x=1
- 실행하려면 x 필요
- chmod로 권한 변경
- 디렉토리는 x가 “진입 권한”
- 755 / 644는 필수 암기
8️⃣ 실습
1) 스크립트 생성 및 실행 시도
cd /
mkdir /home/hello
cd /home/hello
nano hello.sh
# echo hello 입력
./hello.sh- 결과:
Permission denied - 이유: 실행 권한 없음
2) 실행 권한 부여
chmod +x hello.sh
./hello.sh- 정상 실행:
hello
3) 권한 확인
ls -l-rwxr-xr-x
- user만 완전 권한, 나머지는 읽기/실행
4) 읽기 전용으로 변경
chmod 444 hello.sh-r--r--r--
- 실행 불가
⚠️ root는 권한 상관 없음
5) 그룹에 실행 권한 추가
chmod g+x hello.sh-r--r-xr--
6) 숫자 권한 설정
chmod 612 hello.sh-rw---x-w-
- user: rw-
- group: --x
- other: -w-
Share article