저는 로컬 홈 네트워크의 Debian 서버에서 Samba를 실행하고 있습니다. Samba 버전은 4.9.5-Debian
My Mac Mini(Big Sur 포함)가 이 서버에 연결됩니다. 한 공유는 Time Machine 백업에 사용되고 다른 공유는 데이터를 저장하는 데 사용됩니다. Time Machine 백업이 작동하는 것 같습니다(적어도 Time Machine은 불평하지 않았으며 백업에서 단일 파일을 성공적으로 복원했습니다).
그런데 데이터 공유에 대한 권한이 제대로 작동하지 않는 것을 발견했습니다. 파일이나 폴더에 대한 권한을 변경하려고 하면(예: 사용) chmod 640 testfile.txt
공유에 대한 권한은 영향을 받지 않습니다. 권한은 항상 동일하게 유지됩니다.
나는 이것을 인터넷과 독서에서 찾은 정보를 기반으로 했습니다 man smb.conf
.man vfs_fruit
smb.conf 파일의 전역 섹션에 다음 매개변수를 추가했습니다.
server min protocol = SMB3_00
ea support = yes
vfs objects = acl_xattr catia fruit streams_xattr
fruit:aapl = yes
fruit:metadata = netatalk
fruit:resource = file
fruit:encoding = native
fruit:copyfile = yes
fruit:model = MacSamba
fruit:veto_appledouble = no
fruit:posix_rename = yes
fruit:zero_file_id = yes
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
fruit:nfs_aces = no
데이터 공유 구성은 다음과 같습니다.
[DataShare]
comment = Samba data share
path = /srv/samba/datashare
browseable = yes
read only = no
guest ok = no
valid users = myuser
create mask = 0777
directory mask = 0777
저는 Samba를 처음 접했고 다양한 매개변수에 대해 약간 혼란스러워했습니다. 이제 내 Mac 클라이언트가 공유에 있는 파일에 대한 파일 권한을 설정할 수 없는 이유를 모르겠습니다.
이는 단순히 파일을 저장하는 데에는 문제가 없지만 응용 프로그램에 문제를 일으킬 수 있습니다. 예를 들어, 큰 이미지 라이브러리를 공유에 저장하고 싶습니다. 거기에 복사해서 애플 포토 앱으로 열고 싶었는데, 포토에서는 권한이 손상됐다며 그렇게 할 수 없었고, 권한도 수정할 방법이 없었습니다.
이 설정이 작동하도록 하고 싶기 때문에 도움을 주시면 정말 감사하겠습니다.
답변1
나는 파티에 늦었지만 (적어도 나에게는) 작동하는 해결책을 찾고 거기에 내놓지 않는 사람이 될 수는 없습니다. 왜냐하면 나는 항상 "nvm이 문제를 해결했습니다"라고 소리치는 사람이었기 때문입니다. 자세한 설명과 함께 ;)
첫 번째 단계는 귀하의 fstab
가 있는지 확인하는 것입니다.
xattrs
공유 파일 시스템에 대한 지원이 활성화되었습니다 . 을 확인하십시오fstab
.거기 있는 동안 마운트 옵션에서도 ACL이 활성화되었습니다. 이렇게 환경에 맞게 조정하세요.
/dev/disk/by-label/nas1 /mnt/nas1 ext4 defaults,user_xattr,acl,commit=60 0 2
권한 오류가 발생하는 이유를 해결하는 데 몇 시간을 보냈습니다. 방금 포인트 2를 잊어버렸어요.
설정의 나머지 부분은 이미 괜찮으며 생각했던 것보다 훨씬 적은 작업이 필요합니다.
이것을
smb.conf
[global] 섹션에 넣으세요:[global] vfs objects = fruit catia streams_xattr acl_xattr map acl inherit = yes fruit:aapl = yes fruit:model = MacSamba fruit:metadata = stream readdir_attr:aapl_rsize = yes readdir_attr:aapl_finder_info = yes readdir_attr:aapl_max_access = yes
이러한 설정이 무엇을 하는지 궁금하신 분은 겸손히 조언해 드립니다.
$> man smb.conf
(OP를 파헤칠 필요는 없습니다. 해당 게시물의 텍스트를 더...무식한 이전 게시물과 혼동했습니다.)
파일의 나머지 부분은 기본값으로 유지될 수 있습니다. 레거시 Windows 3.11 사용자이고 내 LAN에서 작업 그룹 이름을 동기화하는 것이 걱정된다면 작업 그룹 이름을 변경하십시오.
- 태그를 지원하려는 공유에서는 다음 옵션이 적합합니다.
[Pr0n] comment = Pr0n path = /mnt/nas1/Pr0n browseable = no guest ok = no read only = no writable = yes valid users = [ -- snip -- ] force directory mode = 0775 force create mode = 0664 # Fruit config fruit:posix_rename = yes fruit:veto_appledouble = yes fruit:nfs_aces = yes fruit:wipe_intentionally_left_blank_rfork = no fruit:delete_empty_adfiles = no
SeDiskOperatorStatus
디렉토리는 내 개인 사용자와 그룹이 소유하므로 net grant 등을 조작할 필요가 없습니다 .
한 번 재부팅한 후(아마도 작동할 수도 있음) 모든 것이 자동으로 정상화되고 태그가 모두 허용되어 붙여넣어집니다.
답변2
PAM(플러그형 인증 모듈) 설정은 디렉터리 마스크를 무시하고 마스크 설정을 생성할 수 있습니다. 라인을 확인하십시오: smb.conf에서 pam 제한 사항을 존중합니다 = no입니다. 그러면 문제가 해결될 것입니다.