리눅스 운영체제에서는 파일과 디렉토리를 포함한 모든 객체들에 대해 read, write, execute 권한이 적용된다.
파일의 권한
- 파일의 read 권한: 파일을 읽을 수 있다. 즉, 파일의 내용을 볼 수 있다.
- 파일의 write 권한: 파일을 쓸 수 있다. 즉, 파일의 내용을 수정할 수 있다.
- 파일의 execute 권한: 파일을 실행할 수 있다. 즉, 파일이 실행파일인 경우 실행할 수 있다.
위의 권한들은 아래처럼 파일의 권한 정보로 나타낼 수 있다.
예시 : 파일 "example.txt"에 대해 read와 write 권한이 있고 execute 권한이 없는 경우
-rw-r--r--
위의 권한 정보에서 첫 번째 문자인 "d"는 디렉토리인 경우 "d"로 표기된다.
파일인 경우 "-"로 표기되고, 두 번째부터 열 번째 문자는 소유자, 소유자 그룹, 그 외 사용자 순으로 read, write, execute 권한을 나타낸다.
여기에서 "r"은 read 권한이 있는 것을 나타내며, "w"는 write 권한이 있는 것을, "x"는 execute 권한이 있는 것을 나타낸다. 권한이 없는 경우 "-"로 표기된다.
디렉토리의 권한
- 디렉토리의 read 권한: 디렉토리 안의 파일 목록을 볼 수 있습니다.
- 디렉토리의 write 권한: 디렉토리 안에 새 파일을 생성하거나 기존 파일을 삭제할 수 있습니다.
- 디렉토리의 execute 권한: 디렉토리 안으로 진입할 수 있습니다. 이 권한이 없으면 디렉토리 안으로 진입할 수 없습니다.
디렉토리의 권한은 파일의 권한과 조금 다르다. 디렉토리의 execute 권한이 없으면 해당 디렉토리 안으로 진입할 수 없기 때문이다.
예시 : 디렉토리 "example"에 대해 read와 write 권한이 있고 execute 권한이 없는 경우
drw-rw-r--
맨 앞글자로만 디렉토리인지 파일인지 구분해주는 것을 제외하면 권한 표기 자체는 파일의 표기와 다르지 않다.
파일/디렉토리의 권한 변경 명령어 : chmod
chmod 명령어는 파일이나 디렉토리의 권한을 변경하는 데 사용되며, 다음과 같은 형식을 가진다.
chmod [옵션] [모드] [파일/디렉토리]
- 옵션: 권한을 변경할 때 사용할 옵션을 지정한다.
- 모드: 권한을 변경하는데 사용된다.
- 파일/디렉토리: 권한을 변경할 파일이나 디렉토리의 경로를 지정한다.
옵션은 아래와 같다.
- -r: 하위 디렉토리와 파일에 대해 권한을 변경
- -v: 변경된 파일과 디렉토리의 이름을 출력
모드에는 아래와 같은 기호, 숫자를 사용할 수 있다.
- u: 소유자에 대한 권한을 지정
- g: 소유자 그룹에 대한 권한을 지정
- o: 그 외 사용자에 대한 권한을 지정
- a: 모든 사용자에 대한 권한을 지정
- +: 권한을 추가
- -: 권한을 제거
- =: 권한을 지정한 대로 설정
- 숫자: 권한을 나타내는 숫자
예시1 : '+', '-' 기호를 사용해서 파일 "example.txt" 파일에 읽기 권한을 추가하고 쓰기 권한을 제거하는 경우
chmod +r-w example.txt
예시2 : 숫자표기를 사용해 "example_dir" 디렉토리의 권한을 변경하여 모든 권한을 제거하는 경우
chmod 000 example_dir
위 명령어에서 "000"은 모든 권한을 제거하는 것을 나타낸다. 따라서 이 명령어를 실행하면 "example_dir" 디렉토리의 권한이 모두 제거된다.
이 숫자표기는 순서대로 소유자, 그룹, 기타 순으로 표기되며 각 숫자의 의미는 이렇다.
권한 | 표기 | 값 |
읽기 | r | 4 |
쓰기 | w | 2 |
실행 | x | 1 |
예를 들어서 소유자가 읽기와 쓰기 권한을 가진 파일의 권한을 나타내기 위해서는 6(4+2)이라는 값을 사용하게 된다.
비슷하게 모든 권한을 가진 파일의 권한은 7(4+2+1)이라는 값을 사용한다.
이 권한값들은 위 예시처럼 chmod 명령어에서 사용되며, 파일이나 디렉토리의 권한을 변경할 때 사용한다.
'Linux' 카테고리의 다른 글
[Linux] vi 에디터 사용법 (0) | 2023.03.27 |
---|---|
[Linux] nslookup 명령어 (0) | 2023.03.15 |
[Linux] 파일 내용 필터링 명령어 : grep (0) | 2023.03.14 |
[Linux] 데몬(demon)과 서비스(service) (0) | 2023.03.13 |
[Linux] multipass로 Windows에서 Linux(Ubuntu)사용하기 (0) | 2023.03.10 |