$ ls -l |
은 현재 폴더의 파일 목록 및 자세한 정보를 확인하는 명령어이고 결과는 다음과 같습니다.
첫 번째 필드 drwxr-xr-x는 첫 번째 자리 문자( d )로 파일 유형을, 뒤의 9자리(rwxr-xr-x)로 권한 permission을 나타냅니다.
참고로 그 다음 필드는 소유권자, 파일크기, 생성날짜와 파일명을 나타냅니다.
파일 유형
위 사진에서 d 는 디렉터리, - 는 일반 파일, l 은 링크입니다.
그 밖에 b 는 블록 장치 특수 파일, c 는 문자 장치 특수 파일, p 는 파이프, s 는 소켓을 의미합니다.
권한
r 은 read w 는 write x 는 execute를 의미합니다.
d 와 - 이외 유형의 파일들은 특수 파일로, 실행할 수 없기 때문에 실행 권한은 의미가 없게 됩니다.
9자리의 권한 정보는 소유자, 그룹, 기타 사용자의 권한을 나타내는 3자리 구간으로 나누어집니다.
예를 들어, 위 사진에서 1.txt 파일의 권한은 -rw-r--r-- 이죠?
이는 일반 파일로서 소유자는 읽기, 쓰기를 할 수 있고 같은 그룹에 소속된 사용자 및 기타 사용자는 읽기만 할 수 있습니다.
권한은 rwx 각 자리에 1 또는 0을 넣어서 2진수로 나타낼 수도 있습니다. 즉, rw- 는 110 r--는 100 이 됩니다.
다시 이 2진수를 8진수로 바꾸면 110은 6, 100은 4가 되고 따라서 rw-r--r-- 는 644로 표현할 수 있습니다.
chmod
권한을 변경하기 위해서는 root 이거나 파일의 소유권을 가지고 있어야 합니다.
8진수 숫자로 권한을 표시하는 방법을 살펴봤는데, 이를 활용해서 다음과 같이 명령하면
$ chmod 744 1.txt |
1.txt 파일의 권한을 rwxr--r--로 변경할 수 있습니다.
또는 기호를 활용하는 방법도 있습니다.
$ chmod u+x 1.txt |
는 소유자(u)에 대해 실행 권한(x)을 추가해주므로 결과는 rwxr--r--가 됩니다.
기호를 정리하면 다음과 같습니다.
u | 소유자 | + | 부여 | r | 읽기 |
g | 그룹 | - | 제거 | w | 쓰기 |
o | 기타사용자 | = | 특정 권한만 부여 | x | 실행 |
a | 모든 사용자 |
+와 =의 차이
+는 기존의 권한에 명시한 권한을 추가로 더해주는 용도이고,
=는 대입연산자와 같이 특정 사용자의 권한을 직접 지정해주는 것입니다.
rw-r--r-- 인 상태의 파일에 대해서
u+x 의 결과는 rwx-r--r-- 이 되지만
u=x 의 결과는 --x-r--r-- 이 됩니다.
'Linux Unix' 카테고리의 다른 글
Swatch로 로그 모니터링, 메일 발송하기 (0) | 2024.09.04 |
---|---|
Ubuntu Server에서 Wifi가 잡히지 않을 때 (1) | 2023.10.12 |
리눅스 (AWS) - 스왑 메모리 설정 방법 (0) | 2022.08.03 |
자주 쓰는 Vi/Vim 편집기 단축키 (0) | 2021.05.19 |
WSL) Symbolic link 이용해 windows 파일 작업하기 (2) | 2021.05.19 |
댓글