저는 비공식 홈 서버에서 삼바를 실행하는 새로운 FreeNAS(FreeBSD 10) 기반 파일 서버로 데이터를 마이그레이션하고 있으며, 다른 사용자에게 올바른 액세스를 제공하기 위해 데이터를 배치하는 방법을 계획하려고 노력해 왔습니다. 나는 숙련된 시스템 관리자가 Unix 권한, ACL, Unix의 조합을 사용하는 방법에 익숙하지 않기 때문에 BSD 세계(내가 익숙한 Windows 세계와 반대)에서 이 문제를 해결하는 방법에 대한 지침이 필요하다고 생각합니다. 홈 디렉토리, 소프트웨어/하드 심볼릭 링크, 사용자/그룹 및 삼바에는 원하는 결과를 얻기 위한 매개변수가 포함/제외됩니다.
약 8명의 사용자에 대한 꽤 많은 데이터 디렉터리가 있지만 비슷한 쿼리를 사용하는 다른 사람들을 위해 더 일반적으로 만들기 위해 많이 추상화했습니다.
논리적 데이터 구조는 다음과 같습니다(반드시 디스크에 배치되는 방식은 아님).
미디어 - - 영화 - - 텔레비전 - - 음악 ---서적 소프트웨어 ---운전사 ---설치 프로그램 디스크 이미지 백업 개발하다 - - 도구 ---프로젝트 사용자 비공개 데이터 --- user1의 비공개 데이터 --- user2의 비공개 데이터 ESXi 가상 머신 스토리지
위의 실제 최상위 디렉토리는 ZFS를 사용하고 ZFS + Samba 속성을 더 잘 조정할 수 있도록 데이터를 다른 데이터 세트에 저장하기 때문에 물리적으로 다른 마운트 지점/파일 시스템으로 분리되어 있습니다. 예를 들어,모든 비디오 + 오디오 파일전체가 매우 크지만 중복 제거가 잘 되지 않을 수 있으므로 데이터 세트에 저장됩니다(RAM만 낭비할 뿐입니다).드라이버, 소프트웨어 및 디스크 이미지테스트 결과 중복 제거율이 매우 높고 공간 절약형 중복 제거 이점이 중요하기 때문에 별도의 데이터 세트에 저장합니다.개인 데이터와 비공개 데이터를 분리하세요서로 다른 데이터 세트를 넣으면 보안(?)이 단순화될 수 있습니다.일부 작은 디렉토리추가적인 여러 복사본 또는 다른 스냅샷 설정이 필요합니다.
즉, 각 사용자가 물리적 구조가 아닌 통합된 논리적 구조(자신에게 적합한)를 볼 수 있기를 바랍니다. 즉, 물리적으로 상주하더라도 두 개의 별도 공유가 아닌 동일한 루트 공유에 있는 두 개의 최상위 디렉터리로 media
볼 수 있습니다. software
다른 파일 시스템에서. 따라서 사용자가 액세스하는 루트 공유에는 이를 수행하기 위한 소프트 심볼릭 링크 또는 이와 유사한(nullfs?) 것이 거의 확실하게 포함됩니다.
최상위 디렉터리가 설정되면 하위 디렉터리에 대해 너무 많이 생각할 필요가 없습니다. 내가 계획하고 있는 유일한 제어권은 최상위 디렉터리에 있으며, 어떤 경우에는 두 번째 수준 디렉터리(예: 개별 사용자 개인 데이터 하위 디렉터리)에 있습니다. 해당 수준 아래에서는 항상 "상위와 동일" 권한을 상속하고 데이터가 동일한 볼륨에 있으므로 거의 무시됩니다.
일단 설정된 권한은 간단해야 합니다. 원칙적으로 공통 파일 시스템/사용자/그룹을 설정할 때 추가 작업을 수행하기 전에 소수의 최상위 디렉터리(및 최상위 디렉터리에 대한 심볼릭 링크)에 필요한 권한을 수동으로 설정합니다. 하위 디렉터리 및 콘텐츠에 대한 설정은 이러한 권한을 강제로 상속하므로 사용자는 더 이상 권한을 설정할 수 있는 지식이나 능력이 없습니다. 대부분의 사용자는 셸 액세스 권한이 없으므로 SMB 공유 이외의 유일한 액세스는 Authorized_keys를 사용하여 미리 구성된 백업 명령을 정의하는 SSH를 통한 사전 구성된 rsync 백업입니다. 모든 데이터 디렉터리는 Windows 스타일 ACL을 사용하도록 설정됩니다.
현실적으로 사용자 목록은 각 사용자가 보고 수정할 수 있는 항목을 선택하고 싶을 만큼 짧으며, 개별적으로 그렇게 하는 것이 실용적입니다. 나는 심볼릭 링크, 사용자/그룹 관계, Unix 권한 및 ACL, 심볼릭 링크를 완전히 자유롭게 설정할 수 있습니다. 그러나 이를 우아하게 수행하면 관리하기 쉽고 나에게 많은 것을 요구하지 않는 시스템과 지속적으로 골치 아픈 시스템 사이에 차이가 생길 것입니다.
사용자가 어떤 폴더를 보길 원하는지, 읽기-쓰기 또는 읽기 전용 액세스 또는 순회/비순회 액세스가 필요한지 여부를 알고 있습니다. 내가 원하는 것은 실제로 각 사용자가 필요로 하는 모든 것을 구현하고, 데이터 파일 시스템에서 볼 수 있는 폴더와 해당 폴더 중 읽기-쓰기, 읽기 전용 등을 설정하는 것입니다. 이를 수행하는 방법에는 여러 가지가 있습니다(다양한 사용자 및 그룹 설정, 권한 + ACL, Samba 거부 디렉토리, Symlink, Samba 및 이러한 심볼릭 링크가 작동하지 않는 경우 Union 마운트 또는 mount_nullfs?). 저는 UNIX Experience를 사용하지 않습니다. 이것은 세상에서 계획된 일인데 나는 갇혀 있습니다.
이전에 사용해 본 적이 없는 파일 시스템을 계획하는 것과 액세스를 제어하는 데 필요한 것이 무엇인지 파악하는 것(사용자가 "../" 또는 이와 유사한 것을 사용하여 허용된 디렉터리를 "탈출"할 수 없도록) 사이 ), 지금 막혔어요.
권한 및 파일 시스템 사용 방법에 대한 수많은 리소스가 있습니다.기능적으로 일하다, 하지만 방법에 대한 정보를 찾을 수 없습니다.계획 및 설정기본 다중 사용자 파일 서버의 데이터 레이아웃 및 "동일/유사한 결과를 달성하는 다양한 방법"을 수행한 결과.
숙련된 시스템 관리자는 이를 어떻게 처리할까요?