Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

Linux에서 매우 유용한 기능은 파일 및 디렉토리에 대한 액세스를 제어하는 ​​"액세스 제어 목록"입니다. Linux에서 파일 권한을 제어하기 위해 액세스 제어 목록이 작동하는 방식은 다음과 같습니다.

참고: 액세스 제어 목록이 어떻게 작동하는지 철저히 파악하기 위해 먼저 작동하는 Linux 시스템에서 일부 사용자와 그룹을 설정합니다. 다음 연습은 Kali 운영 체제를 실행하는 가상 머신에서 수행됩니다. 루트 사용자는 시스템에 새 사용자를 추가하고 그룹에 할당할 수 있는 권한이 있습니다.

사용자 및 그룹 만들기

먼저 루트로 로그인하여 사용자를 생성하고 아래 표와 같이 각 그룹에 넣습니다. 개념을 더 잘 이해할 수 있도록 사용자에게 간단한 이름을 지정했습니다.

사용자 그룹
존1
존2
존3
존스
제인1
제인2
제인

adduser를 사용하겠습니다. 시스템에 새 사용자를 추가하는 명령입니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

id 명령은 새로 생성된 사용자의 세부 정보를 표시합니다. 사용자 ID(uid), 그룹 ID(gid) 및 그룹 이름(groups)이 표시됩니다. 사용자는 생성 시 사용자 이름과 동일한 이름을 가진 그룹에 자동으로 추가됩니다. 해당 사용자는 그룹의 유일한 구성원이 됩니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

마찬가지로 사용자 "john2" 및 "john3"도 생성됩니다.

adduser john2
adduser john3

3명의 사용자가 생성되면 id를 사용합니다. 각 사용자 및 그룹 ID를 보려면 명령을 사용하십시오.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

세 명의 사용자가 각자의 그룹인 1000, 1001, 1002에 속해 있음을 알 수 있습니다. 앞서 표시된 표에 따르면 세 명의 사용자가 같은 그룹에 있기를 원합니다. johns . 이러한 그룹은 현재 시스템에 존재하지 않으므로 groupadd를 사용하여 생성합니다. 명령:

groupadd -g <new_group_ID> <group_name>

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

새 그룹 ID는 5000으로 지정됩니다. -g 스위치가 무시되면 시스템이 자동으로 그룹 ID를 선택합니다. 새 그룹의 이름은 "johns"입니다. 이제 "john1", "john2" 및 "john3"의 세 사용자를 이 그룹의 구성원으로 추가해야 합니다. 우리는 usermod를 사용할 것입니다. 이 작업에 대한 명령입니다.

usermod -g <group_name> <user_name>

usermod 사용자 "user_name"을 "group_name" 그룹에 추가합니다. 다음 그림은 그룹 변경 전 "john1"의 uid와 gid를 먼저 보여줍니다. usermod 이후 명령이 성공적으로 실행되면 "john1"이 gid 5000인 "johns" 그룹에 추가됩니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

사용자 "john2" 및 "john3"에 대해서도 동일한 프로세스가 수행됩니다.

usermod -g johns john2
usermod -g johns john3

마지막으로 "johns" 그룹의 세 사용자에 대한 세부 정보는 id를 사용하여 볼 수 있습니다. 명령.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

3명의 사용자를 성공적으로 생성하여 동일한 그룹에 추가했습니다.

마찬가지로 사용자 'jane1' 및 'jane2'가 생성되어 gid가 6000인 'janes' 그룹에 추가됩니다. 세부정보는 id를 사용하여 볼 수 있습니다. 아래와 같이 명령합니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

액세스 제어 목록이 필요한 이유는 무엇입니까?

사용자 "john1"이 로그인했다고 가정해 보겠습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

홈 디렉토리에 새 파일 생성,

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

콘텐츠를 추가합니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

ls 사용 명령을 사용하여 파일의 메타데이터를 봅니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

출력의 처음 몇 문자, - rw - r - - r - - 권한 문자열에 대한 계정입니다. 해부해 봅시다.

rw – r – – r – –
파일 형식 john1이 파일에 대해 가지고 있는 권한 johns 그룹의 구성원이 파일에 대해 갖는 권한 johns 그룹에 속하지 않은 다른 사람에게 부여된 권한

이 문서는 파일 권한에 대한 좋은 입문서입니다.

파일 소유자인 "john1"이 "john2" 및 "jane1"에만 쓰기 권한을 추가로 부여하고 "john3" 및 "jane2"에 대한 읽기 권한은 유지하려면 어떻게 합니까?

rw – r – –
john1
john2
제인1
존3
제인2

한 가지 옵션은 "john1", "john2" 및 "jane1"에 대한 읽기, 쓰기 권한이 있는 새 그룹과 "john3" 및 "jane2"에 대한 읽기 권한만 있는 다른 그룹을 만드는 것입니다. john1이 그룹 구성원에 대한 권한을 추가로 수정하려는 경우 더 많은 그룹을 만들어야 합니다. 여러 그룹을 만들고 관리하는 것은 시스템 관리자에게 부담이 됩니다.

대신, 모든 사용자가 해당 파일에서 수행할 수 있는 작업을 명확하게 설명하는 "액세스 제어 목록"을 파일에 대해 생성할 수 있습니다.

파일에 대한 ACL(액세스 제어 목록)을 만드는 방법은 무엇입니까?

생성 시 모든 파일에는 ACL이 할당됩니다. 그것을 효율적으로 사용하는 것은 단순히 그것을 수정하는 문제입니다. 파일 소유자와 루트 사용자만 파일의 ACL을 수정할 수 있습니다.

getfacl을 사용할 수 있습니다. 기존 ACL을 보는 명령:

getfacl <file_name>

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

#로 시작하는 줄 주석 라인입니다. 실제 정보는 이전에 얻은 권한 문자열과 유사한 출력의 마지막 세 줄에 있습니다. "user" 줄은 파일 소유자 "john1"에게 할당된 권한을 나타냅니다. "그룹" 줄은 "johns" 그룹의 다른 구성원에게 할당된 권한을 나타냅니다. 짐작하셨겠지만 "기타" 줄은 그룹 외부의 다른 사람을 나타냅니다.

setfacl을 사용합시다. 파일의 기존 ACL을 수정하는 명령입니다.

setfacl -m entity:name:permissions <file_name>
엔티티 이름 권한
여기에 있는 값은 ACL 항목이 누구를 위한 것인지를 나타냅니다.

사용자(u) 또는 그룹(g) 또는 기타(o)

ACL 항목과 관련된 사용자 또는 그룹의 이름 읽기, 쓰기, 실행 권한은 r,w,x 문자로 표시됩니다.

"john2"는 먼저 파일에 대한 읽기, 쓰기 액세스 권한을 부여받습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

뒤에 "jane1"이 옵니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

"secretfile"에 대한 업데이트된 ACL을 살펴보겠습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

읽기 및 쓰기 권한이 "john2" 및 "jane1"에 할당된 것을 볼 수 있습니다.

ACL의 진위 여부 확인

"john2"가 파일을 읽고 쓸 수 있음을 알 수 있습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

"john2"가 입력한 새로운 정보가 파일에 추가되었습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

마찬가지로 "jane1"은 읽기 액세스 및 쓰기 액세스와 같은 동일한 권한을 갖습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

하지만 같은 그룹의 "john3"은 파일에 쓸 수 없습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

다른 카테고리에 속하는 "jane2"도 파일에 쓸 수 없습니다.

Linux에서 액세스 제어 목록을 사용하여 파일 권한을 제어하는 ​​방법

결론

동일한 프로세스를 디렉토리로도 확장할 수 있습니다. 액세스 제어 목록을 사용하면 시스템 관리자가 파일 및 디렉토리 액세스를 능숙하게 처리할 수 있습니다.