일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CloudFormation
- Kubernetes
- DynamoDB
- 비구조화 할당
- 옵셔널 체이닝
- AWS
- docker swarm
- 단축 평가
- 자바스크립트
- optional chaining
- 구조분해 할당
- api gateway
- Service
- JavaScript
- null 병합 연산자
- On-Premise
- Site-to-Site VPN
- Proxy Resource
- docker
- grafana
- VPC
- Await
- Custom Resource
- vgw
- cognito
- 온프레미스
- Endpoints
- prometheus
- elasticsearch
- transit gateway
- Today
- Total
만자의 개발일지
[Linux] 리눅스 파일 및 폴더 권한 본문
권한(Permission)
리눅스는 멀티유저 시스템이기 때문에 아무 사용자가 시스템의 중요한 파일에 접근할 수 없도록 권한을 설정해줘야 합니다. 리눅스에는 이 권한을 사용자와 그룹이라는 단위로 지정해 줄 수 있습니다.
예를 들어 소유자는 파일을 읽고,쓰고,실행 할 수 있게 권한을 설정해주고 그 외에 나머지는 파일을 읽을 수 만 있게끔 지정해 줄 수 있다는 얘기입니다.
권한 확인
# ls -l
위 명령어로 현재 디렉토리에 있는 파일들에 대한 정보를 가져올 수 있습니다.
이제 하나하나씩 각 정보가 무엇을 의미하는지 살펴봅시다.
-|rw-|rw-|r--
이렇게 4부분으로 나눠져 있습니다. 앞에서 부터 파일 타입|소유자권한|그룹권한|모든사용자권한(other) 으로 구분할 수 있습니다.
파일 타입
- d (디렉토리)
- l (링크)
- - (파일)
권한 종류
- r (읽기,4)
- w (쓰기,2)
- x (실행,1)
권한 사용자 지정
- u (소유자)
- g (소유그룹)
- o (모든사용자)
- a (전체)
rwx 각 자리를 이진수로 표현했을시 각 값을 421 로 표현할 수 있습니다.
7은 rwx 이고 5 는 r-x 3은 -wx 이런식으로 표현이 가능합니다.
1 | manja | manja | 3
앞에서 부터 링크수|소유자|소유그룹|용량 을 나타냅니다.
Nov 4 05:09 | perm.txt
보시다시피 생성날짜와 파일명입니다.
권한 변경하기(chmod)
파일 및 디렉토리의 권한을 변경할 떄는 chmod 라는 명령어를 사용합니다.
# chmod o-r perm.txt
위 명령어를 입력하면 perm.txt 의 other(모든사용자) 의 권한중 읽기 권한을 제거하겠다는 뜻입니다.
# chmod a=rwx perm.txt
perm.txt 파일을 모두가 읽고,쓰고,실행 시킬 수 있게 하고싶다면 위와같이 명령할 수 있습니다.
# mkdir perm
# mv perm.txt perm
perm이라는 디렉토리를 만들고 perm.txt 를 perm 디렉토리안으로 옮겼습니다.
# chmod 755 perm
perm 디렉토리의 권한을 소유자에겐 rwx 그룹은 rx 그외사용자에게는 rx 의 권한을 부여하겠다는 뜻입니다.
여기서 perm 디렉토리의 하위에 위치한 모든 파일 및 디렉토리의 권한을 바꾸고 싶다면 -R 옵션을 붙이면 됩니다.
# chmod -R 755 perm
이렇게 하면 perm 디렉토리를 포함한 모든 perm 디렉토리의 하위에 위치한 모든 파일 및 디렉토리의 권한이 755로 변경됩니다.
이번엔 실행 파일을 한 번 만들어 봅시다.
# vi hello.sh
vi로 hello.sh라는 파일을 열고 입력모드로 아래와 같이 명령어를 입력해줍니다.
#!/bin/bash
echo 'hello'
그 다음에 ls -l 로 확인해보면 아마 실행권한이 없다고 뜰 것 입니다. 만약 실행 시킨다한들 Permission denied를 띄울 것입니다.
# chmod u+x hello.sh
# ./hello.sh
아래와 같이 소유자에게 실행 권한을 부여한후 실행을 시키면 잘 작동 되는것을 보실 수 있을겁니다.
파일을 실행 시킬떄에는 앞에 ./ 를 붙여줘야합니다.
참고
'Linux' 카테고리의 다른 글
[Linux] DocumentRoot (0) | 2021.11.05 |
---|---|
[Linux] CentOS Apache HTTP Server Configuration Files (0) | 2021.11.05 |
[Linux] 사용자와 사용자 추가 및 sudo 권한 부여 (0) | 2021.11.05 |
[Linux] Alias 설정 및 사용방법 (0) | 2021.11.04 |
[Linux] crontab 사용법 (0) | 2021.11.04 |