공유 디렉터리의 파일을 편집하여 사용자가 공동 작업을 할 수 있도록 하는 방법

공유 디렉터리의 파일을 편집하여 사용자가 공동 작업을 할 수 있도록 하는 방법

나는 매우 평범하고 매우 일반적이라고 생각하는 사용 사례를 가지고 있습니다. (지금까지) 해결책이 없는 것 같아 놀랐습니다. 나는 명백한 것을 간과하고 있다고 생각합니다. 많은 사람들에게는 이 사용 사례에 대한 솔루션이 확실히 필요합니다.

동일한 그룹에 속한 최대 5명의 사용자가 단일 컴퓨터에 로그인 계정을 가질 수 있습니다. 동시에 로그인되지 않습니다.

업데이트 1: 이 문서는 로컬 서버에 있는 텍스트 파일 및 스프레드시트입니다. 우리는 Google이나 외부 서버에서 문서를 호스팅하고 싶지 않습니다.

사실 우리는아니요실시간 협업이 필요합니다.

팀 그룹의 이러한 사용자는 공유 디렉터리에서 파일을 읽고 쓰면서 협업해야 합니다. 이러한 파일이 포함된 디렉터리는 로컬 서버에 있습니다. 공유 디렉터리는 표준 Linux 방법을 통해 클라이언트에 탑재될 수 있습니다. BTRFS에는 지원 기능이 내장되어 있으므로 필요한 경우 ACL을 사용할 수 있습니다.

모든 사용자는 이 키를 사용하여 SSH를 통해 서버에 로그인할 수 있습니다. 사용자 및 그룹 ID는 클라이언트와 서버에서 동일합니다. 사용자 중 누구도 sudo 권한이나 기타 특별한 권한을 갖고 있지 않습니다. 이들 모두의 공통점은 "팀" 그룹의 구성원이라는 것입니다.

공유 디렉터리는 사용자의 홈 디렉터리 아래에 있지 않습니다. rwx 권한을 가진 동일한 그룹 "Team"이 소유하고 있으며 "Team"의 모든 사용자는 해당 경로에 대한 전체 액세스 권한을 갖습니다. 필요한 경우 권한을 변경할 수 있지만이 디렉토리의 파일은 "팀" 그룹 외부의 누구도 읽거나 쓸 수 없습니다.

클라이언트와 서버 모두 Arch Linux를 실행하고 있으며 둘 다 BTRFS를 실행하고 있습니다.

우리는 약 10년 동안 NFS를 실험해 왔으며 많은 권한/액세스 문제에 직면했습니다. 가장 중요한 지원 문제 중 하나는 사용자 권한 문제를 해결하는 것입니다. 우리는 권한 문제에 대한 좋은 해결책을 찾지 못했기 때문에 NFS를 포기하기로 결정했습니다.

"일반 파일 시스템 권한을 사용할 수 있기 때문에" SSHFS로 전환했습니다. 지금까지 우리는 SSHFS를 사용하여 위의 간단한 목표를 달성하지 못했습니다. 바라보다여기그리고여기.

우리는 Samba에 대해 좋은 소식을 많이 듣지 못했기 때문에 한번도 시도해 보지 않았습니다. 또 무엇이 있나요?

이것은 일반적인 사용 사례인 것 같습니다. 보통 어떻게 해결되나요?

복잡한 사건도 없습니다. 예를 들어 우리 네트워크(서버 및 클라이언트)의 모든 시스템은 Linux를 실행합니다. 모든 머신은 로컬 LAN에 있습니다. 이것은 매우 간단합니다. 하지만 아직 제대로 된 해결책을 찾지 못했습니다.

답변1

실제로는 매우 쉽습니다. 대부분의 사람들은 특정 디렉터리 아래의 모든 파일에 대한 권한을 설정해야 한다고 생각하는 것 같지만 사실은 그렇지 않습니다. 최상위 디렉토리만 수행됩니다.

chown :team /path/to/dir
chmod 2770 /path/to/dir

먼저, 그룹 소유자를 team이미 존재하고 올바른 디렉터리에 액세스할 수 있어야 하는 사람들이 포함된 그룹으로 설정합니다. 다음으로, 디렉토리에서 "그룹 ID 설정"에 대한 권한을 설정합니다. 따라서 해당 디렉토리 아래에 생성된 모든 파일은 team해당 그룹의 소유가 됩니다. 꼭 필요한 것은 아니지만 유용한 알림이라고 생각합니다. team모든 사람에게 전체 권한을 부여합니다. 그룹의 소유자이자 디렉터리의 소유자입니다. 누구나아니요이 그룹에는 권한이 있으며 others여기서는 비어 있습니다.

이 설정의 결과는 team해당 그룹에 속하지 않은 사람에 대해 해당 디렉터리에서 수행된 작업이라도 해당 사람을 ls얻게 됩니다 .Permission denied그러나 파일 권한이 개별적으로 잘못된 권한으로 설정되지 않은 경우 올바른 그룹의 구성원은 해당 디렉터리에서 읽고 쓸 수 있습니다. 해당 파일의 쓰기를 보호해서는 안 되는 경우 즉시 권한을 수정하십시오.

chmod -R g+rw /path/to/dir
find /path/to/dir -type d -print0 | xargs -0 chmod g+x

ACL이 없으면 권한 비트를 창의적으로 설정하여 향후(즉, 새로 생성된) 파일에 대한 권한을 설정할 수 없습니다. 사용자는 umask를 설정해야 합니다. 다음 줄을 사용하여 이 작업을 수행할 수 있습니다 /etc/profile.

umask 002

많은 배포판의 기본값이 022(그룹 구성원이 읽을 수는 있지만 쓸 수는 없음), 077(그룹 구성원이 읽을 수는 있음)이므로 이를 설정하는 것이 중요합니다.아무것도 없다다른 사용자에게) 또는 027(그룹 읽기는 허용하지만 쓰기는 허용하지 않으며 다른 사람에게는 권한이 없음) 이러한 옵션 중 어느 것도 원하는 것이 아닙니다.

파일 시스템의 여러 부분에 대해 서로 다른 요구 사항이 있거나 사람들이 umask를 개별적으로 조작하여 문제를 일으키지 않도록 하려면 기본 ACL을 사용할 수 있습니다.

find /path/to/dir -type d -print0 | xargs -0 setfacl -m d:g:team:rwx -m d:o:---

다 설정하고 나면 정말그것은 중요하지 않습니다SSHFS를 사용하는지 NFS를 사용하는지 여부. 하지만 그래도 문제가 해결되지 않으면 다시 방문하여 보다 구체적인 질문을 하는 것이 가장 좋습니다.

답변2

문서의 내용에 따라 git모든 사람이 액세스할 수 있는 저장소(소프트웨어 공동 작업에 적합)와 같은 적절한 버전 제어 시스템을 사용하거나 텍스트 파일의 공동 편집을 허용하는 Google Docs와 같은 시스템(공동 작업에 적합)을 사용합니다. 텍스트 파일 편집). 보고서 등). 이것이 제가 현재 직장에서 사용하는 솔루션입니다.

Wikipedia 항목도 참조하세요.협업 실시간 편집기.

문서를 편집하는 동안 IMHO공유 드라이브이는 한 사용자가 저장한 문서가 다른 사용자가 변경한 내용을 쉽게 덮어쓸 수 있기 때문에 문제가 됩니다. 누가 무엇을 변경했는지 추적하거나 문서의 이전 버전에 대한 변경 사항을 롤백할 방법도 없습니다.

관련 정보