일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- html
- nestjs
- OOP
- java
- 탐욕법
- dfs
- Linux
- REST API
- node.js
- typescript
- bean
- winston
- Spring
- LifeCycle
- Deep Dive
- 알고리즘
- Interceptor
- Kubernetes
- 자료구조
- 인접행렬
- css
- puppeteer
- javascript
- GraphQL
- JWT
- 코딩테스트
- 인접리스트
- 프로그래머스
- TIL
- MySQL
- Today
- Total
처음부터 차근차근
[Linux] Chomd 명령어 본문
Chmod란?
chmod(change mode의 축약어)명령어는 유닉스와 유닉스 계통 환경 안에서 쓰이는 셸 명령어이다. 이 명령어는 파일들이나 디렉터리의 파일 시스템 모드들을 바꾼다. 그 모드들은 허가나 특별한 모드들을 포함한다.
리눅스에서는 각 파일 및 디렉토리에 대해
- 읽기 r
- 쓰기 w
- 실행 x
권한(permission)을 파일 개별적으로 지정할 수 있도록 만들어놨다.
chmod 명령은 바로 이러한 파일의 권한을 변경할 수 있게 만들어주는 명령어이다. Change 와 Mode의 앞 글자들을 조합한 이름이다.
즉, chmod 명령을 사용하여 파일의 모드를 변경한다는 것은 파일의 권한을 변경한다는 것과 동일하다는 의미를 가진다.
왜 만들어졌을까?
리눅스 시스템의 모든 파일이 그 종류 또는 쓰임새와 관계 없이 읽기, 쓰기, 실행 가능하게 만들어져 있다면 어떻게 될까?
(예를 들어, json 파일이 실행이 된다면?? sh 파일이 실행이 불가능하게 되어 있다면??)
잘못된 명령어 사용으로 시스템 운영에 중요한 역할을 하는 파일의 내용이 변경되거나, 사용자의 사소한 실수 한번으로 리눅스 시스템의 모든 파일이 삭제되어 버릴 수 있다.
이런 문제가 생기는 경우를 방지하기 위해 만들어졌다.
권한 및 모드 요약
권한을 요약하자면 다음 그림과 같다.

사용자를 구분하는 것은 4가지가 있다.
- 파일 소유자 자신 User
- 파일 소유자 자신이 속한 그룹 Group
- 그 외 사용자 Others
- 모든 사용자 All
그리고 어떤 모드를 허가하는지에 따라 3가지로 구분된다.
- 읽기 r = 4
- 쓰기 w = 2
- 실행 x = 1
파일 및 폴더 권한을 보는 방법
$ ls -l
-rw-r--r-- 1 ppotta manager 17 Mar 24 03:17 FILE
파일 및 디렉토리 권한을 확인할 때는, ls -l 명령어를 치면 보인다.
1. -rw-r--r--
첫번째 항목으로, 파일 소유자 별 권한을 보여준다.
10자리로 구성되어 있으며, 1번째는 디렉토리일 경우, d를 보여준다.
나머지 3자리씩, rwx, 즉 읽기, 쓰기, 실행 권한이 있다면 글자, 권한이 없다면 하이픈(-)으로 나온다.
3. ppotta
파일 소유자 자리이며, 누가 현재 파일을 소유했는지 확인할 수 있다.
4. manager
그룹을 나타낸다.
맨 마지막이 파일 혹은 폴더 이름이다.
chmod 명령어 정리
chmod [OPTION] [MODE] [FILE]
OPTION
-v : 모든 파일에 대해 모드가 적용되는 진단(diagnostic) 메시지 출력.
-f : 에러 메시지 출력하지 않음.
-c : 기존 파일 모드가 변경되는 경우만 진단(diagnostic) 메시지 출력.
-R : 지정한 모드를 파일과 디렉토리에 대해 재귀적으로(recursively) 적용.
MODE
파일에 적용할 모드(mode) 문자열 조합.
u,g,o,a : 소유자(u), 그룹(g), 그 외 사용자(o), 모든 사용자(a) 지정.
+,-,= : 현재 모드에 권한 추가(+), 현재 모드에서 권한 제거(-), 현재 모드로 권한 지정(=)
r,w,x : 읽기 권한(r), 쓰기 권한(w), 실행 권한(x)
X : "디렉토리" 또는 "실행 권한(x)이 있는 파일"에 실행 권한(x) 적용.
s : 실행 시 사용자 또는 그룹 ID 지정(s). "setuid", "setgid".
t : 공유모드에서의 제한된 삭제 플래그를 나타내는 sticky(t) bit.
0~7 : 8진수(octet) 형식 모드 설정 값.


- 파일이 속한 그룹이 실행할 수 있는 권한 추가.
$ chmod g+x FILE
- 시스템의 모든 사용자가 읽을 수만 있는 권한 지정.
$ chmod a=r FILE
- 파일을 소유한 그룹과 그 외 사용자의 모든 권한 제거.
$ chmod go-rwx FILE
문자열 뿐만 아니라, 8진수 형태로도 권한을 부여할 수 있다.
chmod 777 <File_Path>
참고
chmod - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. chmod(change mode의 축약어)명령어는 유닉스와 유닉스 계통 환경 안에서 쓰이는 셸 명령어이다. 이 명령어는 파일들이나 디렉터리의 파일 시스템 모드들을 바꾼다.
ko.wikipedia.org
리눅스 chmod 명령어 사용법. (Linux chmod command) - 리눅스 파일 권한 변경.
1. 리눅스 파일 사용 권한 리눅스에서, 파일(File)을 사용해 할 수 있는 작업은 크게 세 가지로 나눌 수 있습니다. 파일에 저장된 데이터를 읽기. (r = read). 파일에 데이터를 쓰기. (w = write). 파일 실
recipes4dev.tistory.com
'OS > Linux' 카테고리의 다른 글
[Linux] NFS (0) | 2024.08.20 |
---|---|
[Linux] umask (1) | 2024.07.24 |
[Linux] Chown (2) | 2024.07.24 |