리눅스 사용자라면 패키지를 설치하거나 명령을 실행할 때 다음과 같은 메시지를 본 적이 있을 것입니다.

$ apt install vim
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

이는 패키지를 설치할 권한이 없기 때문입니다. 이 게시물에서는 리눅스에서 파일과 폴더 권한을 관리하는 방법에 대해 설명하겠습니다.

권한이 필요한 이유

리눅스는 다중 사용자 운영 체제입니다. 즉, 여러 사용자가 동시에 같은 컴퓨터를 사용할 수 있습니다.

가정 내에 단 하나의 컴퓨터가 있고 가족들과 함께 공유한다고 가정해봅시다. 경우에 따라서는 가치 있는 파일에 대한 다른 사람들의 접근을 제한하고 싶을 수 있습니다. 여기서 권한이 필요합니다.

권한은 파일이나 폴더에 접근할 수 있는 사용자를 결정하는 규칙의 집합입니다.

권한의 종류

권한에는 세 가지 종류가 있습니다.

  1. 읽기 (r)
  2. 쓰기 (w)
  3. 실행 (x)

권한 표기법

예를 들어, 파일이 읽기 전용이면 r--으로 표시됩니다. 파일이 읽고 쓰기가 가능하다면 rw-로 표시됩니다. 파일이 읽기, 쓰기, 실행이 가능하다면 rwx로 표시됩니다.

숫자로 표현된 권한

권한은 숫자로 나타낼 수도 있습니다. 각 권한은 이진수로 된 숫자로 할당됩니다. 예를 들어, rwx는 이진수로는 111이며, 이는 십진수로는 7입니다. rw-는 이진수로는 110이며, 이는 십진수로는 6입니다. r--는 이진수로는 100이며, 이는 십진수로는 4입니다.

권한 관리하기

파일이나 폴더의 권한은 소유자(owner), 그룹(group), 다른 사용자(others) 에 의해 관리됩니다.

소유자, 그룹, 다른 사용자 확인하기

파일이나 폴더의 소유자, 그룹, 다른 사용자를 확인하려면 ls -l 명령을 사용합니다.

$ ls -l example.txt
-rw-r--r-- 1 tux parents 0 Jan  9 14:00 example.txt

이 예에서 소유자는 tux이고, 그룹은 parents입니다.

그리고 파일의 권한은 rw-r--r--입니다. 조금 무섭게 보일 수 있지만, 실제로는 간단합니다.

권한을 세 부분으로 나눌 수 있습니다. rw-, r--, 그리고 r--입니다. 첫 번째 부분은 소유자의 권한, 두 번째 부분은 그룹의 권한, 세 번째 부분은 다른 사용자의 권한입니다. 따라서 이 권한은 644로도 표시할 수 있습니다.

소유자 변경하기

파일이나 폴더의 소유자를 변경하려면 chown 명령을 사용합니다.

$ chown [owner] [file]

그룹 변경하기

파일이나 폴더의 그룹을 변경하려면 chgrp 명령을 사용합니다.

$ chgrp [group] [file]

권한 변경하기

파일이나 폴더의 권한을 변경하려면 chmod 명령을 사용합니다.

$ chmod [permission] [file]

예를 들어, 파일을 소유자에게 읽기, 쓰기, 실행 가능하게 만들고, 그룹에게 읽기 가능하게, 다른 사용자에게는 읽기만 가능하게 하려면 chmod 744 example.txt를 사용할 수 있습니다.

더 간편하게 수정하려면 +-를 사용하여 권한을 추가하거나 제거할 수 있습니다.

$ chmod u+x example.txt # 소유자에게 실행 권한 추가
$ chmod g-w example.txt # 그룹의 쓰기 권한 제거
$ chmod o-r example.txt # 다른 사용자의 읽기 권한 제거

결론

이 게시물에서는 리눅스에서 파일과 폴더 권한을 관리하는 방법을 설명했습니다. 질문이나 제안 사항이 있으시면 아래 댓글을 남겨주세요.

이 게시물은 2024 동계 모각소 활동을 위해 작성되었습니다.

참고 자료

초보 해커를 위한 칼리 리눅스 입문 (OccupyTheWeb)