Linux 에서 파일 특정 권한 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 파일 권한을 확인하는 방법을 배우게 됩니다. 파일 권한을 이해하는 것은 파일 접근 및 보안 관리에 필수적입니다. 소유자, 그룹 및 기타 사용자에 대한 표준 읽기, 쓰기 및 실행 권한을 보기 위해 기본 ls -l 명령으로 시작하여 권한을 검사하는 다양한 방법을 탐구할 것입니다.

기본 사항을 바탕으로, 다양한 형식의 권한을 포함하여 파일 정보에 대한 보다 상세하고 사용자 정의 가능한 보기를 위해 stat --format 명령을 사용하는 방법을 자세히 살펴보겠습니다. 마지막으로, 표준 소유자, 그룹 및 기타 사용자를 넘어 파일 권한을 관리하는 보다 세분화된 방법을 제공하는 getfacl 명령을 사용하여 접근 제어 목록 (ACL, Access Control Lists) 을 확인하는 방법을 배우게 됩니다.

ls -l 로 파일 권한 확인

이 단계에서는 ls -l 명령을 사용하여 Linux 에서 파일 권한을 확인하는 방법을 배우게 됩니다. 파일 권한을 이해하는 것은 파일 및 디렉토리를 안전하게 관리하는 데 매우 중요합니다.

파일 권한은 파일 또는 디렉토리를 읽고, 쓰고, 실행할 수 있는 사용자를 결정합니다. Linux 에서 권한은 세 가지 범주로 할당됩니다.

  • 소유자 (Owner): 파일 또는 디렉토리를 소유한 사용자입니다.
  • 그룹 (Group): 특정 권한을 가진 사용자 그룹입니다.
  • 기타 사용자 (Others): 시스템의 다른 모든 사용자입니다.

파일의 권한을 검사하기 위해 간단한 파일을 만들어 보겠습니다. ~/project 디렉토리에 있는지 확인하십시오. pwd 명령을 사용하여 현재 디렉토리를 확인할 수 있습니다.

pwd

다음과 같은 출력을 볼 수 있습니다.

/home/labex/project

이제 touch 명령을 사용하여 my_file.txt라는 파일을 만듭니다.

touch my_file.txt

touch 명령은 파일이 존재하지 않으면 빈 파일을 만듭니다.

다음으로, ls -l 명령을 사용하여 파일의 세부 정보 (권한 포함) 를 확인합니다.

ls -l my_file.txt

다음과 유사한 출력을 볼 수 있습니다.

-rw-rw-r-- 1 labex labex 0 Feb 13 10:00 my_file.txt

출력의 첫 번째 부분인 -rw-rw-r--를 분석해 보겠습니다. 이 문자열은 파일 유형과 권한을 나타냅니다.

  • 첫 번째 문자 (-) 는 파일 유형을 나타냅니다. -는 일반 파일을 의미합니다. 다른 일반적인 유형으로는 디렉토리를 나타내는 d와 심볼릭 링크를 나타내는 l이 있습니다.
  • 다음 아홉 문자는 세 개의 세트로 그룹화됩니다.
    • 첫 번째 세트 (rw-) 는 소유자의 권한을 보여줍니다.
    • 두 번째 세트 (rw-) 는 그룹의 권한을 보여줍니다.
    • 세 번째 세트 (r--) 는 기타 사용자의 권한을 보여줍니다.

각 세 개의 문자 세트 내에서:

  • r은 읽기 권한을 의미합니다.
  • w는 쓰기 권한을 의미합니다.
  • x는 실행 권한을 의미합니다.
  • -는 권한이 부여되지 않았음을 의미합니다.

예제 출력 -rw-rw-r--에서:

  • 소유자 (labex) 는 읽기 (r) 및 쓰기 (w) 권한이 있지만 실행 (-) 권한은 없습니다.
  • 그룹 (labex) 은 읽기 (r) 및 쓰기 (w) 권한이 있지만 실행 (-) 권한은 없습니다.
  • 기타 사용자는 읽기 (r) 권한만 있고 쓰기 (-) 또는 실행 (-) 권한은 없습니다.

권한 뒤에 오는 숫자와 이름 (1 labex labex 0 Feb 13 10:00) 은 다음을 나타냅니다.

  • 1: 파일에 대한 하드 링크 수입니다.
  • labex: 파일의 소유자입니다.
  • labex: 파일을 소유한 그룹입니다.
  • 0: 파일 크기 (바이트) 입니다.
  • Feb 13 10:00: 마지막 수정 날짜 및 시간입니다.
  • my_file.txt: 파일 이름입니다.

ls -l의 출력을 이해하는 것은 Linux 에서 파일 및 디렉토리를 사용하는 데 필수적입니다.

다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.

stat --format 을 사용하여 권한 검사

이전 단계에서는 ls -l을 사용하여 파일 권한을 확인했습니다. 파일 및 파일 시스템에 대한 자세한 정보를 얻기 위한 또 다른 강력한 명령은 stat입니다. 이 단계에서는 --format 옵션과 함께 stat을 사용하여 보다 구조화된 방식으로 파일 권한을 구체적으로 검사합니다.

stat 명령은 크기, 블록, 접근 시간, 수정 시간 및 권한과 같은 파일에 대한 다양한 정보를 표시할 수 있습니다. --format 옵션을 사용하면 형식 시퀀스를 사용하여 정확히 어떤 정보를 보고 싶은지 지정할 수 있습니다.

stat을 사용하여 이전 단계에서 생성한 my_file.txt 파일의 권한을 살펴보겠습니다. 여전히 ~/project 디렉토리에 있는지 확인하십시오.

다음 명령을 입력하고 Enter 키를 누르십시오.

stat --format=%A my_file.txt

다음과 유사한 출력을 볼 수 있습니다.

-rw-rw-r--

이 출력은 ls -l에서 본 것과 동일한 권한 문자열입니다. %A 형식 시퀀스는 stat에게 ls -l과 마찬가지로 파일의 권한을 사람이 읽을 수 있는 형식으로 표시하도록 지시합니다.

다른 형식 시퀀스를 시도해 보겠습니다. %a 시퀀스는 8 진수 표기법으로 권한을 표시합니다. 8 진수 표기법은 권한의 숫자 표현으로, 각 숫자는 소유자, 그룹 및 기타 사용자의 권한을 나타냅니다.

다음 명령을 입력하고 Enter 키를 누르십시오.

stat --format=%a my_file.txt

다음과 유사한 출력을 볼 수 있습니다.

0664

8 진수 권한 0664를 분석해 보겠습니다.

  • 첫 번째 숫자 (0) 는 기본 권한의 경우 일반적으로 무시됩니다.
  • 두 번째 숫자 (6) 는 소유자의 권한을 나타냅니다. 이진수에서 6110입니다. 이는 읽기 (1), 쓰기 (1) 및 실행 (0) 에 해당합니다. 즉, 읽기 및 쓰기 권한입니다.
  • 세 번째 숫자 (6) 는 그룹의 권한을 나타냅니다. 다시 말하지만, 이진수에서 110은 읽기 및 쓰기 권한을 의미합니다.
  • 네 번째 숫자 (4) 는 기타 사용자의 권한을 나타냅니다. 이진수에서 4100입니다. 이는 읽기 (1), 쓰기 (0) 및 실행 (0) 에 해당합니다. 즉, 읽기 권한만 있습니다.

이는 ls -l-rw-rw-r-- 출력과 일치합니다. 8 진수 표기법은 향후 랩에서 배울 수 있는 chmod 명령으로 권한을 변경할 때 자주 사용됩니다.

stat --format을 사용하면 파일에 대한 특정 정보 조각을 추출할 수 있으며, 이는 스크립팅 또는 자세한 분석에 매우 유용할 수 있습니다.

계속 진행하려면 **계속 (Continue)**을 클릭하십시오.

getfacl 로 접근 제어 목록 (ACL) 확인

표준 Linux 권한 (소유자, 그룹, 기타 사용자) 외에도 일부 파일 시스템은 접근 제어 목록 (ACL, Access Control Lists) 을 지원합니다. ACL 은 기본 세 가지 범주를 넘어 특정 사용자 또는 그룹에 대한 권한을 정의하는 보다 세분화된 방법을 제공합니다.

getfacl 명령은 파일 및 디렉토리의 ACL 을 표시하는 데 사용됩니다. 이 단계에서는 getfacl을 사용하여 my_file.txt 파일에 ACL 이 설정되어 있는지 확인합니다.

먼저, ~/project 디렉토리에 있는지 확인합니다.

pwd

/home/labex/project를 볼 수 있습니다.

이제 my_file.txt에 대해 getfacl 명령을 실행합니다.

getfacl my_file.txt

다음과 유사한 출력을 볼 수 있습니다.

## file: my_file.txt
## owner: labex
## group: labex
user::rw-
group::rw-
other::r--

출력을 분석해 보겠습니다.

  • ## file: my_file.txt: 검사 중인 파일을 나타냅니다.
  • ## owner: labex: 파일 소유자를 보여줍니다.
  • ## group: labex: 파일의 기본 그룹을 보여줍니다.
  • user::rw-: 이 줄은 파일 소유자의 권한을 보여줍니다. user::는 소유 사용자를 나타내고 rw-는 읽기 및 쓰기 권한을 나타냅니다. 이는 ls -l에서 보이는 소유자 권한에 해당합니다.
  • group::rw-: 이 줄은 소유 그룹의 권한을 보여줍니다. group::은 소유 그룹을 나타내고 rw-는 읽기 및 쓰기 권한을 나타냅니다. 이는 ls -l에서 보이는 그룹 권한에 해당합니다.
  • other::r--: 이 줄은 기타 사용자의 권한을 보여줍니다. other::는 다른 모든 사용자를 나타내고 r--는 읽기 권한을 나타냅니다. 이는 ls -l에서 보이는 기타 사용자 권한에 해당합니다.

이 경우 getfacl의 출력은 단순히 표준 Linux 권한을 반영합니다. 특정 ACL 이 다른 사용자 또는 그룹에 대해 설정된 경우 user:username:permissions 또는 group:groupname:permissions와 같은 추가 줄로 출력에 나타납니다.

예를 들어, testuser라는 사용자에게 읽기 전용 액세스를 제공하도록 ACL 이 설정된 경우 출력에는 user:testuser:r--와 같은 줄이 포함될 수 있습니다.

my_file.txt에 특정 ACL 이 설정되지 않았으므로 getfacl은 표준 권한 비트에서 파생된 기본 권한을 표시합니다.

ACL 이 사용되는 환경에서 특히 파일 또는 디렉토리에 적용된 전체 권한 집합을 이해해야 할 때 getfacl을 사용하는 것이 필수적입니다.

이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.

요약

이 랩에서는 ls -l 명령을 사용하여 Linux 에서 파일 권한을 확인하는 방법을 배웠습니다. 샘플 파일을 생성하고 ls -l의 출력을 해석하여 파일 유형과 소유자, 그룹 및 기타 사용자에 대한 읽기, 쓰기 및 실행 권한을 이해했습니다.

또한 파일 권한을 검사하는 대체 방법을 탐색했습니다. stat --format 명령을 사용하여 보다 구조화된 형식으로 특정 권한 세부 정보를 검색하고, 표준 소유자, 그룹 및 기타 사용자를 넘어 보다 세분화된 권한 제어를 제공하는 ACL(Access Control Lists, 접근 제어 목록) 을 확인하기 위해 getfacl 명령을 사용했습니다.