리눅스 운영체제에서는 파일과 디렉토리를 포함한 모든 객체들에 대해 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 명령어에서 사용되며, 파일이나 디렉토리의 권한을 변경할 때 사용한다.

+ Recent posts