일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- PYTHON
- 동적프로그래밍
- 브루트포스
- 프로그래머스
- google coding competition
- 코딩테스트
- 동적 프로그래밍
- 그래프
- kick start
- nlp
- 알고리즘
- CSS
- DFS
- dp
- 백준
- 프로그래밍
- 코딩
- 파이썬
- 딥러닝
- 킥스타트
- 순열
- BFS
- 네트워크
- 구글 킥스타트
- 리눅스
- linux
- OS
- AI
- 코딩 테스트
- 운영체제
- Today
- Total
오뚝이개발자
[리눅스] Linux 파일 권한 관리 명령어(chmod) 본문
리눅스는 하나의 컴퓨터를 여러 사용자가 사용할 수 있는 멀티유저 OS이다. 따라서 파일에 대한 권한을 관리하는 것이 보안상 중요하다. 특정 파일은 아무나 수정하지 못하게 하거나, 어떤 파일은 누구나 보고 수정할 수 있도록 관리하는 등의 경우가 있을 수 있다.
리눅스 파일, 디렉토리 권한 확인하기
ls -l 명령어를 사용하면 각 파일 및 디렉토리의 권한을 확인할 수 있다.
-rwxr-xr-x 1 pi pi 5720 Jul 3 20:06 a.out
-rw-r--r-- 1 pi pi 722 Jul 2 21:12 crontab.bak
-rw-r--r-- 1 pi pi 52 Jul 2 21:10 test.c
출력 결과는 각각 파일종류 및 권한(퍼미션), 링크수, 사용자(소유자), 그룹, 파일크기, 수정시간, 파일이름을 나타낸다.
a.out 파일의 권한은 '-rwxr-xr-x'으로 확인할 수 있고, 소유권은 pi pi로 확인된다.(앞에서부터 소유자, 그룹)
rwx는 각각 읽기(read), 쓰기(write), 실행(execute) 권한을 나타낸다. 참고로 디렉토리에 들어가기 위해선 실행권한이 있어야 한다. 권한은 4부분으로 나뉜다.
- rwx r-x r-x
처음의 -자리는 파일(-)인지 디렉토리(d)인지에 대한 구분이다.
rwd : 사용자 권한(owner)
r-x : 그룹(group) 권한
r-x : 다른 사용자(other) 권한
파일의 권한 변경(chmod)
파일이나 디렉토리의 권한을 변경하기 위해선 chmod 명령어를 사용해야 한다.
아래 예시와 같이 사용대상별로 개별적으로 권한 변경이 가능하다. 사용자는 u 사용자, g 그룹, o 다른사용자, a 전부로 구분할 수 있고, +는 권한을 부여하고 -는 권한을 빼앗는다.
chmod g+w test.py # 그룹에 test.py의 쓰기 권한 부여
chmod o-r test.py # 다른 사용자들의 test.py의 읽기 권한 박탈
chmod g+rwx test.py # 그룹에 test.py의 읽기, 쓰기, 실행 권한 부여
chmod go+rw test.py # 그룹과 다른 사용자에게 test.py의 읽기, 쓰기 권한 부여
그런데 이러한 방식은 조금 번거롭다. 그래서 숫자로 한 번에 권한을 변경하는 방식을 많이 사용한다.
chmod 000 test.py : 사용자, 그룹, 다른사용자의 모든 권한을 제거한다.
chmod 777 test.py : 사용자, 그룹, 다른사용자의 모든 권한을 추가한다.
chmod 700 test.py : 사용자에게만 모든 권한을 준다.
chmod 744 test.py : 사용자에게는 모든 권한을 주고, 그룹, 다른 사용자에게는 읽기 권한만 준다.
읽기는 4, 쓰기는 2, 실행은 1로 나타내며 필요한 권한을 더해서 지정할 수 있다. 즉, 위에서 chmod 744는 아래와 같이 해석 가능하다.
- 사용자 : r + w + x = 4 + 2 + 1 =7
- 그룹 : r-- = 4
- 다른 사용자 : r-- = 4
Reference
'리눅스' 카테고리의 다른 글
Shell 스크립트 내에서 반복문 사용 (0) | 2022.05.15 |
---|---|
[vscode] vscode ssh 암호 등록, ssh key 등록으로 비밀번호 입력 없이 접속 (0) | 2021.12.19 |
python 커맨드로 python3 버전 사용도록 설정하기 (0) | 2021.09.20 |
[리눅스] txt 파일의 행수 알아내기 (0) | 2021.01.26 |
[리눅스] nohup으로 실행하는 파일에 input 값 주기 (0) | 2020.11.02 |