소수의 사용자(20~30)가 사용할 Linux 워크스테이션을 구성하고 있습니다. 이러한 사용자는 소규모 그룹 집합(5-10)에 속하며, 각 사용자는 적어도 하나의 그룹에 속하고 잠재적으로 여러 그룹에 속합니다. 워크스테이션에는 특정 그룹의 구성원만 쓸 수 있는 파일이 있습니다. 각 파일은 한 그룹의 구성원만 쓸 수 있으므로 표준 Linux 권한은 제대로 작동합니다. 두 가지 질문이 있습니다.
이미 존재하는 파일은 누가 소유해야 합니까? 나는 root
그룹에 해당하는 더미 사용자 집합을 만들거나 생각하고 있었습니다. 내가 놓친 것보다 더 나은 선택이 있습니까? 이것은 독특한 상황이 아닌 것 같아서 표준 규칙이 있기를 바랐습니다.
두 번째 질문은 파일을 어디에 넣어야 하는가입니다. 더미 사용자를 만들면 /home/
. 루트가 파일을 소유하고 있다면 `/share/?를 사용하거나 /srv/groups/
아니면 `/share/? 또 컨벤션이 있나요?
답변1
이미 존재하는 파일은 누가 소유해야 합니까? 나는 루트 또는 그룹에 해당하는 더미 사용자 세트를 생성하는 것을 생각하고 있었습니다.
루트를 소유하지만 공통 그룹에 속하게 하여 파일이 0002로 마스크되었다고 가정하면(즉, 그룹 쓰기 가능) 그룹과 일치하는 사용자를 생성하면 실수로 다시 소유되는 것을 방지할 수 있다는 측면에서 약간의 이점이 있습니다. 그룹에 속한 사람들은 해당 사용자로 로그인할 수 있습니다. 나는 언급하고있다사고물론 그룹의 악의적인 사용자는 어떤 경우에도 파일을 삭제할 수 있기 때문입니다. 그러나 루트(또는 다른 사용자)를 소유한 경우그 그룹은 아니야), 그룹의 누군가가 여전히 파일에 쓸 수 있고 삭제할 수는 있지만 그룹의 다른 구성원이 나중에 파일에 액세스할 수 없도록 권한을 다시 소유하거나 수정할 수는 없습니다.
그룹을 사용하지만 고정된 소유자가 없는 경우(즉, 파일은 누구나 소유할 수 있지만 그룹 권한이 있는 올바른 그룹에 있어야 함)는 사용자가 파일을 생성하는 경우 이점이 있습니다(아래 참조).
그룹과 일치시키기 위해 새로운 사용자를 생성하면 실제로 해결되는 것보다 더 많은 잠재적인 문제가 발생할 수 있습니다. 그룹 권한을 사용하는 것이 효과가 있다면 계속 사용하세요. 슈퍼유저를 위한 간단한 명령을 만들 수도 있습니다.
#!/bin/sh
chown -R root:groupx $1
chmod -R g+w $1
그리고 그것을 사용하십시오 foo /some/directory
. 이렇게 하면 트리의 모든 항목이 소유되고 root
그룹 groupx
및 그룹 쓰기가 가능해집니다.
root
루트가 다음을 추가하면 소유자로 사용하는 데 잠재적인 문제가 있습니다.세트이드하지만 나는 소유자만이 그렇게 할 수 있다고 믿습니다. 정말로 걱정된다면, 그룹과 일치하는 사용자가 아닌 더미 사용자를 생성하십시오. 권한은 없지만 누구도 사용할 수 없는 것입니다.
사용자가 기본적으로 해당 파일을 소유하게 되는 새 파일을 생성하는 데에는 또 다른 문제가 있습니다. 파일을 올바른 그룹으로 변경할 수 있으며, 그러면 다른 사람이 파일에 액세스할 수 있지만 소유자는 변경할 수 없습니다. 이러한 이유와 사람들이 잊어버릴 수 있기 때문에 foo /some/directory
정기적으로 또는 적절한 순간에 실행하는 것이 좋습니다(예: 소유권을 변경하면 파일이 열려 있는 소프트웨어에 영향을 미칠 수 있으므로 로그인한 사람이 없을 때).
마지막 단락을 고려하면 다음과 같이 말할 수 있습니다.주인은 전혀 상관없어, 그룹만이 중요합니다. 이 경우 foo
명령은 다음을 사용해야 합니다.
chgrp -R groupx $1
대신에 chown
.
파일을 어디에 넣어야 하나요?
사용자가 아니라 그룹 /home/groupx
이더라도 생성하는 것은 전혀 문제가 없습니다. groupx
유일한 잠재적인 문제는 동일한 이름을 가진 사용자를 생성하는 경우입니다. 그러나 어쨌든 이를 원하지는 않습니다. 거기에 파일을 넣고 foo /home/groupx
.
사용자가 파일을 생성할 수 없도록 하려면 디렉터리를 755로 설정하십시오. 사용자는 자신의 그룹이 소유한 파일을 계속 수정할 수 있습니다.
답변2
일반적으로 이 상황에서 파일은 마지막으로 저장한 사람(또는 새 버전을 만드는 대신 기존 파일을 수정하는 프로그램으로 편집하는 경우 해당 파일을 만든 사람)의 소유가 됩니다. 초기 파일 세트를 생성하는 경우 귀하가 속하지 않은 그룹에 데이터를 시드하지 않는 한 해당 파일을 귀하의 계정 소유로 남겨 두겠습니다. 이 경우 루트는 무엇보다도 좋습니다. 하지만 별거 아닙니다.
/usr
시스템( , /var
, /bin
, /sbin
, /lib
, /etc
)의 일부도 아니고 사용자의 홈 디렉터리( )도 아닌 데이터에 대해 널리 통용되는 규칙은 없습니다 /home
. 아래에 다른 디렉토리를 만들 /home
거나 다른 곳에 둘 수 있습니다. /srv
원칙적으로는 서버에서 사용하는 데이터용이지만 시스템 관리자는 원하는 것을 자유롭게 넣을 수 있습니다. /net/MACHINENAME
기계가 파일 시스템을 서로 내보내는 네트워크에서 "MACHINENAME에 저장된 기타 데이터"에 대해 널리 사용되는 선택입니다.