| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- vmstat
- command
- 디스크
- Tux
- uname
- 텍스트
- 권한상승
- remove
- 턱스
- 커널패닉
- nohup
- 하드링크
- 모니터링
- bg
- 코드블럭
- 명령어
- 리눅스
- printworkingdirectory
- sed
- mkdir
- su
- 스트림에디터
- Linux
- os-release
- disown
- pkill
- iostat
- CodeBlock
- 심볼릭링크
- IT
- Today
- Total
Snow flake
[command] chmod 명령어 본문
chmod 명령어는 Change Mode의 약자로, 파일이나 디렉토리의 권한(permission)을 변경하는 명령어입니다. 리눅스에서는 모든 파일과 디렉토리에 읽기(read), 쓰기(write), 실행(execute) 권한이 소유자(user), 그룹(group), 기타 사용자(other) 단위로 각각 부여되어 있는데, chmod는 이 권한을 조정할 때 사용합니다.
# 권한 확인
ls -l
# 결과 예시
-rwxr-xr-- 1 oracle dba 0 Nov 5 10:00 readme.txt
위 결과에서 앞의 10자리 중 rwx / r-x / r-- 세 그룹이 각각 소유자(user), 그룹(group), 기타(other)의 권한을 의미합니다. r은 읽기, w는 쓰기, x는 실행 권한이고, 권한이 없으면 -로 표시됩니다.
숫자(8진법) 방식
가장 많이 쓰이는 방식으로, r=4, w=2, x=1 값을 더해서 권한을 지정합니다.
# 사용법
chmod [숫자] [파일명, 디렉토리]
# tuxdirs 디렉토리에 소유자, 그룹, 기타 모두 전체 권한 부여
chmod 777 tuxdirs
# 소유자는 읽기/쓰기, 그룹과 기타는 읽기만 가능하도록 설정
chmod 644 readme.txt
# 소유자만 전체 권한, 나머지는 권한 없음
chmod 700 secret.sh
숫자 하나가 소유자, 그룹, 기타 순서대로 각각의 권한을 나타내며, 4(r) + 2(w) + 1(x) 조합으로 원하는 권한 값을 만들 수 있습니다.
문자 방식
기존 권한에서 일부만 추가하거나 제거할 때 유용한 방식입니다.
# u(소유자)/g(그룹)/o(기타)/a(전체) + (추가) - (제거) = (지정)
# 소유자에게 실행 권한 추가
chmod u+x script.sh
# 그룹의 쓰기 권한 제거
chmod g-w data.txt
# 전체 사용자에게 읽기 권한만 지정
chmod a=r public.txt
숫자 방식은 권한을 통째로 지정할 때, 문자 방식은 기존 권한을 유지하면서 일부만 바꿀 때 편리합니다.
옵션
# -R : 디렉토리 내부 파일, 하위 디렉토리까지 재귀적으로 적용
chmod -R 755 /home/oracle/scripts
디렉토리 하나에만 적용하고 싶다면 옵션 없이, 그 안의 모든 파일까지 한 번에 바꾸고 싶다면 -R 옵션을 사용하면 됩니다.
실무에서 주의할 점
chmod 777은 모든 사용자에게 전체 권한을 열어주는 것이라 테스트 환경에서는 편하지만, 운영 서버에서는 보안상 지양해야 하는 설정입니다. 필요한 최소한의 권한만 부여하는 것이 원칙입니다.
또한 쉘스크립트 파일을 작성한 뒤 실행이 안 돼서 당황하는 경우가 많은데, 대부분 실행 권한이 없어서 발생하는 문제입니다.
# Permission denied 발생 시
./deploy.sh
-bash: ./deploy.sh: Permission denied
# 실행 권한 부여 후 재시도
chmod +x deploy.sh
./deploy.sh
파일을 만든 직후에는 실행 권한이 기본으로 없는 경우가 많으므로, 스크립트 작성 후에는 실행 권한을 확인하는 것이 좋습니다.
'Programming > Linux' 카테고리의 다른 글
| [command] su, sudo 명령어 (0) | 2026.09.08 |
|---|---|
| [command] chown 명령어 (1) | 2026.09.08 |
| [command] less 명령어 (0) | 2022.11.02 |
| [command] more 명령어 (0) | 2022.11.01 |
| [command] cat 명령어 (0) | 2022.10.31 |
