저는 Linux 전문가가 아니며 이 상황을 해결하는 방법을 알고 싶습니다.
demo
그룹과 연결된 ID 1000이라는 사용자가 있으므로 www-data
이 demo
사용자는 실제로 프로젝트의 모든 파일을 삭제/편집/생성할 수 있습니다. 예를 들면 다음과 같습니다.
foo
이제 id 를 가진 사용자를 사용하여 로그인한다고 가정합니다 1001
. 예를 들어 파일을 편집하려고 하면 .env
권한이 거부됩니다.
그룹 소유자(1000)와 동일한 권한을 사용자에게 부여할 수 있는 방법이 있나요 foo
?
foo
따라서 간단히 사용자 그룹에 사용자를 추가한 demo
다음 foo
사용자가 데모인 것처럼 실제로 삭제/편집/생성할 수 있습니다.
이 목표를 어떻게 달성할 수 있나요?
미리 감사드립니다.
답변1
파일의 소유자는...만입니다.
다른 사람과 그룹의 모든 구성원에게 읽기, 쓰기 및 실행 권한을 부여할 수 있지만...
파일을 삭제할 수 있는 소유자의 단독(루트와 공유) 권한을 빼앗지 않습니다.
다른 사용자도 자신이 소유하지 않은 특정 파일을 삭제할 수 있도록 하려면... 유일한 가능성은 해당 사용자에게 다음과 같은 기능을 제공하는 것입니다.수.
따라서 다른 사용자가 www-data 소유의 파일을 삭제할 수 있도록 하려면 다음 명령을 사용하여 해당 사용자에게 권한을 부여해야 합니다.su www-data
답변2
노력하다: usermod -a -G 1000 foo
.
그러나 사용자 1000은 www-data 그룹과 연결되어 있지 않으며, 사용자 www-data는 그룹 1000과 연결되어 있습니다. 이를 살펴봐야 합니다.
답변3
두 명의 사용자에게 읽기-쓰기 액세스 권한을 부여하고 나머지 사용자에게는 읽기 전용 액세스 권한을 부여하려면 해당 두 사용자에 대한 그룹을 생성하고 rwx
해당 그룹에 권한을 부여하면 됩니다. 또한 두 사용자가 모두 파일을 생성 및 삭제할 수 있도록 디렉토리에 대한 그룹 액세스 권한을 부여하고 rwx
, 사용자를 생성하는 대신 디렉토리에서 새 파일 그룹을 가져오도록 디렉토리에 setgid 비트를 설정합니다.
관련된 두 사용자 모두/모든 사용자가 올바른 설정을 갖고 있는 한 작동합니다. 이 경우가 umask
그렇습니다 . 002
그렇게 하지 않으면 필연적으로 그룹에 쓰기 권한이 없는 파일이 생성되어 다른 사용자가 잠길 수 있습니다. 파일 권한을 변경하기 위해 파일 소유자에게 권한을 위임할 수 없습니다.
(글쎄, 다른 사용자가 이 트릭을 알고 있다면 새 이름으로 파일을 만들고 원본 파일을 기반으로 이름을 바꾸고 이제 새 파일의 소유자가 될 수 있습니다.)
읽기 및 쓰기 액세스 권한이 있는 두 명의 사용자, 읽기 전용 액세스 권한이 있는 한 그룹, 액세스 권한이 없는 다른 사용자가 필요한 경우 ACL을 고려해야 합니다. 기본 ACL도 이 umask
문제를 해결하는 데 도움이 됩니다.
답변4
ACL을 사용하면 목표를 달성할 수 있습니다.
이것은좋은 시작.
귀하의 질문 주제가 다소 혼란스럽기 때문에 더 이상 설명하지 않겠습니다. 명확하게 하기 위해 편집할 수 있을까요?