Linux에서 파일 소유권(chown)을 적용하는 방법은 무엇입니까?

Linux에서 파일 소유권(chown)을 적용하는 방법은 무엇입니까?

내 시스템에서 특정 사용자 그룹의 권한을 변경하는 데 문제가 있습니다.

4명의 사용자 u1,v1 및 u2,v2와 2개의 그룹 g1 및 g2가 있다고 가정합니다. u1과 v1은 그룹 g1에 속하고, u2와 v2는 각각 그룹 g2에 속합니다.

이제 그룹 g1(rwx)의 u1만이 "foo.bar"라는 파일에 액세스할 수 있기를 원합니다. 이를 위해 다음을 입력했습니다.

sudo chown u1:g1 foo.bar
sudo chmod 700 foo.bar

하지만 다음과 같은 문제가 있습니다.

첫 번째.그룹에 파일 소유권을 부여하면 chmod 명령을 사용하여 다른 사용자를 제한할 수 있습니다. 이 명령의 용도는 무엇입니까? (파일 권한의 세 번째 필드는 rwx-rwx-입니다.읽고 쓰기) chown은 여기서 어떤 용도로 사용됩니까?

이 문제에 대한 예를 들어보겠습니다. 저는 시스템의 어떤 사용자도 아닌 g1 사용자만이 "foo.bar"에 액세스할 수 있기를 원합니다. chown 명령만 사용하여 이 작업을 수행할 수 있습니까? 그렇지 않다면 그 응용 프로그램은 무엇입니까!

두번째.특정 그룹에 특정 권한을 부여하려면 어떻게 해야 합니까? 예를 들어 g1 그룹이 자신이 소유한 모든 파일에 대해 읽기 권한만 갖기를 원합니다. 그래서 터미널에 다음을 입력하면

sudo chown :g1 foo.bar

추가 명령이 없으면 모든 u1 및 v1 사용자는 이 파일에 대한 읽기 액세스 권한을 갖습니다. chown을 통해서만 달성할 수 있나요?

내 주장이 모든 사람에게 명확해졌기를 바랍니다.

답변1

chown과 chmod는 두 가지 다른 용도로 사용됩니다.

  • chown파일의 소유자를 정의합니다.
  • chmod누가 무엇을 할 수 있는지 정의합니다.

  1. 특정 그룹에 대한 액세스를 제한하려면: 그룹은 파일의 소유자여야 하며 권한 비트가 올바르게 설정되어야 합니다.

    sudo chown :g1 foo.bar && sudo chmod 770 foo.bar
    

    마지막 3개의 권한 비트는 다른 모든 사용자와 관련됩니다. Chown 명령은 소유권을 설정합니다. 소유자가 아닌 사용자는 마지막 3개의 권한 비트에 중점을 둡니다.

  2. 파일 소유자 그룹에 대한 특정 권한을 설정하려는 경우: sudo chmod 770 foo.bar파일을 생성할 때 설정할 수도 있습니다.마스크.

또한 각 그룹에 서로 다른 권한을 부여하려면 ACL 권한을 살펴보는 것이 좋습니다. 이를 통해 r--g1, rwxg2 등을 설정할 수 있습니다 ---.

답변2

foo.bar이제 그룹( ) 내에서만 접근 할 수 rwx있는 파일을 원합니다 . 이를 위해 다음을 입력했습니다.u1g1

sudo chown u1:g1 foo.bar
sudo chmod 700 foo.bar

u1그러면 사용자에게만 파일 권한이 부여됩니다. 해당 그룹의 구성원에게는 권한이 설정되어 있지 않으므로 파일을 어느 그룹에 설정하는지는 중요하지 않습니다. 또는 오히려 "기타" 권한과 정확히 동일한 권한을 가지므로 특정 사용자의 액세스 권한이 "그룹" 권한에 따라 결정되는지 "기타" 권한에 따라 결정되는지는 중요하지 않습니다.

직접 요청할 수 없다는 점을 참고하세요.둘 다일치시킬 사용자 및 그룹입니다. u1위 파일은 그룹 구성원 여부와 상관없이 접근이 가능합니다.

예를 들어 사용자와 그룹만 액세스할 수 있는 디렉토리를 만든 root.g1다음 그 안에 사용자가 소유 u1하고 사용자만 액세스할 수 있는 파일을 만드는 것입니다. 이는 특정 사용자가 소유하지만 특정(setgid) 도구로만 수정할 수 있는 crontab에 가장 일반적으로 사용됩니다. 예를 들어 /var/spool/cron/crontabs/Debian/Ubuntu 시스템을 참조하세요.

그룹에 파일 소유권을 부여하는 용도는 무엇입니까? chmod 명령을 사용하여 다른 사용자를 제한할 수 있습니다. 시스템의 [다른] 사용자가 아닌 foo.baruser 의 액세스 만 원합니다.g1

파일 그룹을 로 설정하고 g1해당 그룹에 원하는 액세스 권한을 부여합니다. 예를 들어, chown a.g1 file && chmod 660 file사용자 a와 그룹 구성원 만 g1파일을 읽고 쓸 수 있습니다. (또한 사용자가 a권한을 변경할 수 있습니다. 이를 방지하려면 이를 수행하지 않는 사용자가 파일을 소유하도록 해야 합니다.)

특정 그룹에 특정 권한을 부여하려면 어떻게 해야 합니까? 예를 들어, g1그룹이 소유한 모든 파일에 대해서만 읽기 권한을 갖기를 원합니다 .

당신은 할 수 없습니다. 권한은 사용자나 그룹이 아닌 파일의 속성입니다. 위의 경우 파일에 그룹에 대한 읽기/쓰기 권한이 부여되었으므로 그런 일이 발생했습니다. 필요한 경우 이 그룹에 파일 쓰기 권한을 부여하지 않도록 주의해야 합니다.

[댓글 질문] chown주로 그룹에 소유권을 부여하는 데 사용되므로 나중에 chmodyes? 명령을 사용하여 그룹 사용자를 파일로 제한 할 수 있습니다. 그렇지 않으면 chmod이를 사용하지 않고 단독으로 사용하여 소유자를 제외한 다른 모든 사용자를 제한할 수 있습니다 chown.

거의 다 됐어요. 물론, 보증된 경우 소유 사용자를 실제로 변경하는 root데에도 사용할 수 있습니다 chown. 이는 최소한 새 사용자를 생성할 때 발생합니다. 홈 디렉토리의 소유권은 어떻게든 설정되어야 합니다.

( 사용자의 기본 조합이 적절하다면 chmod없이 사용할 수 있지만, chown이는 불필요한 을 생략할 뿐입니다 chown.)

관련 정보