Linux 파일 및 디렉터리 권한 설명

Linux는 다중 사용자 운영 체제이므로 여러 사용자가 Linux를 사용하여 동시에 동일한 컴퓨터와 상호 작용할 수 있습니다. 다중 사용자 운영 체제이기 때문에 Linux에서는 여러 사용자에게 속한 파일의 보안과 개인 정보 보호를 보장하는 것이 중요합니다.

이를 달성하기 위해 Linux에는 파일 및 디렉터리 권한을 처리하는 정교한 시스템이 있습니다. 이러한 방식으로 Linux 사용자는 다양한 사용자의 파일 액세스와 사용자가 컴퓨터를 사용할 때 수행할 수 있는 작업을 제어할 수 있습니다.

Linux 사용자로서 Linux가 파일 및 디렉터리 권한을 처리하는 방법과 사용 가능한 다양한 권한을 사용하여 파일을 보호하고 컴퓨터의 기능을 보장하는 방법을 이해하는 것이 중요합니다. Linux가 파일 및 디렉터리 권한을 관리하는 방법을 이해하기 위해 먼저 Linux 운영 체제의 다양한 사용자 범주를 살펴보겠습니다.

Linux 사용자 카테고리

첫 번째 사용자 범주는 파일이나 디렉터리의 소유자입니다. Linux의 각 파일이나 디렉터리에는 하나의 소유자가 있습니다. 이 소유자에게는 일반적으로 자신의 파일이나 디렉터리에 대해 더 많은 권한이 부여됩니다. 파일의 소유자는 일반적으로 사용자를 의미하는 문자 u로 표시됩니다.

Linux에서는 여러 사용자를 그룹에 넣고 파일에 대한 권한을 그룹으로 부여할 수 있습니다. 이들은 그룹 소유자로 알려져 있으며 문자 g로 표시됩니다.

예를 들어 추천 도서가 포함된 파일이 있고 여러 사용자에게 해당 파일에 유사한 권한을 부여하려는 경우 이를 수행하는 쉬운 방법은 사용자를 그룹에 배치하고 그룹 전체에 권한을 부여하는 것입니다.

다른 범주의 사용자는 기타로 알려져 있으며 문자 o로 표시됩니다. 이는 파일을 소유하지 않고 파일에 대한 권한이 있는 그룹에 속하지도 않은 사용자입니다. 기타는 시스템의 다른 모든 사람을 나타냅니다.

컴퓨터의 모든 사용자, 즉 파일 소유자, 그룹의 사용자 및 기타 사용자는 문자 a를 사용하여 지정할 수 있습니다.

Ubuntu Linux에서 새 사용자 생성 및 추가

Ubuntu Linux에서 새 사용자를 생성하고 추가하는 방법을 살펴보겠습니다. 이 튜토리얼을 따라하려면 새 사용자도 생성하십시오.

1. 설정을 열고 왼쪽 메뉴 표시줄에서 사용자를 클릭한 다음 잠금 해제를 클릭하고 메시지가 나타나면 비밀번호를 입력하세요. 새 사용자를 추가하려면 잠금 해제를 클릭해야 합니다. 기본적으로 이 기능은 잠겨 있습니다.

2. 잠금이 해제되면 사용자 추가 옵션이 표시됩니다. 새 사용자를 추가하려면 클릭하세요.

3. 새 사용자를 생성하려면 전체 이름과 사용자 이름을 입력하고 지금 비밀번호 설정을 선택한 후 비밀번호를 설정하세요. 또한 계정 유형이 관리자로 설정되어 있는지 확인한 다음 추가를 클릭하여 사용자를 추가합니다.

4. 방금 생성한 새 사용자 계정이 아래와 같이 표시됩니다.

Linux 파일 및 디렉터리 권한

권한은 파일 및 디렉터리에 대한 액세스를 제어하는 ​​규칙과 다양한 사용자가 해당 파일 및 디렉터리에 대해 수행할 수 있는 작업을 나타냅니다. Linux에는 세 가지 주요 권한 범주가 있습니다.

  • 읽기(r) – 사용자가 파일 내용을 보고 디렉터리 내용을 나열할 수 있습니다.
  • 쓰기(w) – 사용자가 파일 내용을 수정할 수 있습니다. 디렉터리의 경우 쓰기 권한을 통해 사용자는 디렉터리의 파일 및 하위 디렉터리를 생성, 삭제, 이름 변경 또는 이동하는 등 디렉터리의 내용을 수정할 수 있습니다. 그러나 디렉터리에 대한 쓰기 권한은 사용자에게 실행 권한도 있는 경우에만 작동합니다.
  • 실행(x) – 실행 권한은 파일이 실행될 수 있는 프로그램으로 처리될 수 있음을 의미합니다. 디렉토리의 경우 실행 권한을 통해 사용자는 디렉토리에 들어가거나 ‘cd’할 수 있습니다.
  • 읽기, 쓰기 및 실행 권한은 Linux에서 사용할 수 있는 세 가지 사용자 범주에 할당됩니다.

    Linux에서 파일 및 디렉터리를 제거하는 방법을 읽을 수도 있습니다.

    Linux의 긴 목록

    Linux 디렉터리에 있는 파일의 내용을 보려면 일반적으로 ls 명령을 실행합니다. 그러나 이는 사용 가능한 파일과 디렉터리만 나열하며 추가 정보는 제공하지 않습니다.

    내용에 대한 자세한 정보를 보려면 긴 목록 형식을 사용해야 합니다. 이를 수행하려면 -l 플래그와 함께 ls 명령을 실행하십시오. 그러면 아래와 같이 파일 권한, 파일 소유자 및 파일 그룹 소유자가 제공됩니다.

    Ubuntu에서는 기본적으로 그룹이 생성되지 않은 경우 그룹 이름이 파일 소유자와 동일합니다.

    그룹을 생성하려면 addgroup 명령을 사용합니다. 편집자라는 그룹을 추가하려면 다음 명령을 실행하고 메시지가 표시될 때 비밀번호를 입력하세요.

    sudo addgroup editors

    sudo를 사용하면 컴퓨터의 모든 사용자에게 영향을 미치는 변경 사항을 실행할 수 있는 권한을 가진 슈퍼 사용자인 루트 사용자로 명령을 실행할 수 있습니다.

    그룹에 사용자를 추가하려면 다음 구문을 사용합니다.

    adduser <user> <group>

    따라서 편집자 그룹에 belmont와 madici를 모두 추가하려면 다음을 실행합니다.

    sudo adduser belmont editors
    sudo adduser madici editors

    사용자가 속한 그룹을 보려면 다음을 실행하십시오.

    groups <username>

    위 명령의 결과는 아래와 같습니다.

    이제 파일 유형과 파일에 대한 권한을 알려주는 파일 속성을 살펴보겠습니다. ㅏ.

    Linux의 파일 속성

    Linux에서 파일 속성은 정확히 10자로 구성됩니다. 첫 번째 문자는 파일 유형을 나타냅니다. 다양한 파일을 나타내는 일반적인 첫 번째 문자는 다음과 같습니다.

    • d는 디렉토리를 나타냅니다.
    • – 일반 파일(예: 텍스트 파일)을 나타냅니다.
    • c는 문자 특수 파일을 나타냅니다.
    • l은 심볼릭 링크를 나타냅니다.
    • b는 블록 특수 파일을 나타냅니다.

    나머지 9개 문자는 소유자, 그룹 소유자 및 기타 사용자의 권한을 표시하는 데 사용됩니다. 9명의 캐릭터는 3개의 그룹으로 나뉩니다. 첫 번째 그룹은 소유자의 권한을 나타내고, 두 번째 그룹은 그룹 소유자의 권한을 나타내며, 마지막 세 그룹은 다른 사용자, 즉 컴퓨터의 다른 모든 사용자에 대한 권한을 나타냅니다.

    각 범주에 대한 권한은 읽기부터 시작하여 쓰기, 마지막으로 실행 권한으로 표시됩니다. 읽기 권한은 r로, 쓰기 권한은 w, 실행 권한은 x로 표시됩니다.

    – 기호는 사용자에게 특정 권한이 없는 경우에 사용됩니다. 예를 들어 그룹 소유자의 rw-는 읽기 및 쓰기 권한이 모두 있지만 해당 디렉터리(d)에 대한 실행 권한이 없음을 의미합니다.

    기호 표기법을 사용하여 파일 권한 변경

    파일이나 디렉토리에 대한 권한을 변경하려면 chmod 명령을 사용하고 권한을 변경할 대상을 지정합니다.

    이는 사용자에 대해 문자 u로 표시되는 파일의 소유자, 문자 g로 표시되는 그룹 소유자 또는 문자 o로 표시되는 다른 사용자일 수 있습니다. 위의 모든 것을 의미하는 문자 a를 사용하여 세 가지 범주의 사용자 모두를 타겟팅할 수도 있습니다.

    다음으로 지정하는 것은 변경 사항입니다. 권한을 추가하려면 +(더하기 기호)를 사용합니다. 권한을 제거하려면 –(빼기 기호)를 사용합니다. 우리가 제공하는 마지막 것은 세 가지 사용 가능한 권한을 나타내기 위해 r,w 또는 x를 사용하여 추가하는 권한입니다.

    실제로 이를 보려면 아래 명령을 사용하여 books라는 디렉터리를 만듭니다.

    mkdir books

    디렉토리에 입력하거나 ‘cd’하십시오.

    cd books

    readingList.txt라는 파일을 만듭니다.

    touch readingList.txt

    다음을 실행하여 books 디렉토리의 내용을 길게 나열하십시오.

    ls -l

    출력은 다음과 같습니다.

    우리가 생성한 파일은 첫 번째 –로 표시된 일반 파일입니다. 소유자와 그룹 소유자는 읽기 및 쓰기 권한을 가지고 있고 다른 사용자는 읽기 권한만 가지고 있습니다. 다른 사용자에게 파일에 쓸 수 있는 권한을 부여하려면 다음 명령을 실행합니다.

    chmod o+w readingList.txt

    다른 사용자의 권한이 변경되었는지 확인하려면 다음을 실행하세요.

    ls -l

    산출:

    다른 사용자의 파일 권한이 r–에서 rw-로 변경되었습니다. 이는 이제 쓰기 권한이 있음을 의미합니다.

    파일 실행 소유자(사용자)에게 실행 권한을 추가하려면 다음을 수행하십시오.

    chmod u+x readingList.txt

    그룹 소유자의 쓰기 권한을 제거하려면 다음을 실행합니다.

    chmod g-w readingList.txt

    아무도 파일을 볼 수 없도록 모든 사용자의 읽기 권한을 제거하려면 다음을 실행하십시오.

    chmod a-r readingList.txt

    파일 소유자에게 읽기 권한을 다시 추가하려면 다음을 실행하세요.

    chmod u+r readingList.txt

    파일 실행의 그룹 소유자에게 쓰기 및 실행 권한을 추가하려면 다음을 수행하십시오.

    chomod g+wx readingList.txt

    8진수 표기법을 사용하여 권한 변경

    Linux에서는 사용 가능한 세 가지 권한 각각에 가능한 값이 두 개만 있습니다. 읽기 권한은 r 또는 –만 가능하고, 쓰기 권한은 w 또는 –만 가능하며, 실행 권한은 x 또는 –만 가능합니다.

    따라서 이러한 권한은 켜짐 또는 꺼짐으로 간주될 수 있으므로 사용 가능한 값이 두 개만 있는 이진수를 사용하여 표현됩니다. 켜짐 또는 참이면 1이고 꺼짐 또는 거짓이면 0입니다. 여기서 rw–와 같은 권한은 이진수를 사용하여 110으로 표시될 수 있습니다.

    따라서 특정 사용자 범주에 대해 세 개의 이진수만으로도 모든 권한을 표시하기에 충분합니다. 예를 들어 소유자, 그룹, 기타 rwxrw-r–에 대한 권한은 이진수를 사용하여 111110100으로 표시될 수 있습니다.

    그러나 길고 혼동되기 쉬운 이진수 작성을 피하기 위해 더 나은 대안은 8진수를 사용하는 것입니다.

    8진수는 8을 밑으로 하므로 8개의 값만 가질 수 있습니다. 각 8진수는 정확히 3개의 이진수에 매핑됩니다.

    따라서 rw-와 같은 권한은 바이너리로 110으로 표현될 수 있습니다. 110의 8진수는 6이므로 rw-를 나타내는 데 6을 사용할 수 있습니다. 8진수는 아래와 같이 소유자, 그룹 및 기타 사용자의 읽기, 쓰기 및 실행 권한을 나타내는 데 사용할 수 있습니다.

    긴 이진수를 쓰는 대신 8진수를 사용하여 권한을 나타내는 것이 좋습니다. 따라서 소유자, 그룹 및 기타 사용자의 모든 권한은 위 다이어그램과 같이 단일 8진수를 사용하여 표시됩니다.

    8진수 표기법을 사용하여 권한을 설정하면 한 번에 한 명의 사용자만 권한을 설정할 수 있는 기호 표기법과 달리 모든 사용자에 대한 권한을 한 번에 설정할 수 있다는 장점이 있습니다.

    그러나 8진수 표기법을 사용하면 각 8진수가 무엇을 의미하는지 기억할 수 있으려면 약간의 시간과 연습이 필요합니다. 즉, 8진수 표기법을 사용할 때마다 위의 다이어그램을 자유롭게 참조하세요. 8진수 표기법을 사용하여 권한을 변경하는 몇 가지 예를 살펴보겠습니다.

    모든 사용자, 즉 소유자, 그룹 소유자 및 기타 사용자에게 readingList.txt에 대한 읽기, 쓰기 및 실행 권한을 부여하려면 다음을 실행합니다.

    chmod 777 readingList.txt

    권한이 변경되었는지 확인하려면 다음을 실행하십시오.

    ls -l

    산출:

    total 0
    -rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

    이제 소유자, 그룹 및 기타 사용자는 readingList.txt를 읽고, 쓰고, 실행할 수 있는 권한을 갖게 되었습니다.

    그룹 소유자와 다른 사용자 모두의 쓰기 권한을 제거하려면 다음을 실행하십시오.

    chmod 755 readingList.txt

    소유자 및 다른 사람의 실행 권한을 제거하려면 다음을 실행하십시오.

    chmod 654 readingList.txt

    Linux의 특별 권한

    Linux에는 표준 읽기, 쓰기 및 실행 권한 외에도 파일 및 디렉터리에 적용할 수 있는 세 가지 특수 권한이 ​​있습니다. 이러한 권한은 액세스 제어를 위한 고급 기능을 제공하며, 파일 소유자나 그룹 소유자처럼 더 적은 권한을 가진 사용자가 더 높은 권한으로 파일 및 명령을 실행할 수 있도록 해줍니다.

    특별 권한은 다음과 같습니다.

    • 사용자 ID(SUID) 설정 – SUID 권한을 사용하면 사용자는 이를 실행하는 사용자가 아닌 소유자의 권한으로 파일이나 프로그램을 실행할 수 있습니다. 이는 표준 사용자가 높은 권한이 필요한 작업을 수행해야 할 때 유용합니다.
    • 그룹 ID(SGID) 설정 – SGID 권한을 사용하면 사용자는 실제 그룹의 권한이 아닌 파일의 그룹 소유자 권한으로 파일을 실행할 수 있습니다.
    • 고정 비트 – 고정 비트는 일반적으로 디렉토리의 파일이 디렉토리의 실제 소유자, 해당 특정 파일의 소유자 또는 루트 사용자에 의해서만 삭제될 수 있도록 디렉토리에 설정되는 권한입니다.

    읽기, 쓰기, 실행이라는 세 가지 특수 권한을 표준 권한과 함께 사용할 수 있습니다.

    결론

    컴퓨터에 여러 사용자가 없더라도 권한은 Linux에서 중요한 개념입니다. Linux 시스템과 해당 기능에 저장된 데이터의 제어, 보안 및 개인 정보 보호를 보장하려면 권한을 이해하는 것이 중요합니다. 따라서 이 문서에서 사용 권한에 대해 배운 내용을 연습하여 사용 권한에 익숙해지는 것이 좋습니다.

    Windows에서 Linux 명령을 사용하는 방법을 알아볼 수도 있습니다.