나는 지난 24시간 동안 데비안 서버에 모든 종류의 패키지를 설치했습니다. 이 서버는 Mac OS X(10.8) 환경에서 실행되므로 초기 목표는 이 서버를 TimeCapsule 대체 서버로 사용하는 것이었습니다.
따라서 저는 zeroConfig 및 Time Machine 지원을 위해 Netatalk 3.0.2와 avahi-daemon을 설치했습니다.
내 서버에 연결된 하드 드라이브는 GUID 파티션 구성표로 포맷된 HFS+입니다.
각 Mac에 대해 하나의 폴더가 있는 하나의 볼륨을 TimeCapsule 볼륨으로 설정하고 해당 드라이브에 액세스할 수 있도록 두 명의 Unix 사용자를 추가하고 데이터 드라이브로 두 개의 추가 드라이브를 추가했습니다. TimeCapsule 드라이브/폴더의 소유권을 다음과 같이 변경했습니다.
chown -R userA:userA /media/usb/TimeCapsuleA
and
chown -R userB:userB /media/usb/TimeCapsuleB
내 /etc/afp.conf는 다음과 같습니다
[Global]
hostname = TimeCapsule
log file = /var/log/netatalk.log
uam list = uams_guest.so, uams_dhx.so, uams_dhx2.so,
zeroconf = yes
save password = yes
mimic model = TimeCapsule6,106
log level = default:warn
log file = /var/log/netatalk.log
hosts allow = 192.168.178.0/24
[default_for_all_vol]
[TimeCapsuleA]
path = /media/usb/TimeCapsuleBackup/TimeCapsuleA/
time machine = yes
valid user = usera
invisible dots = yes
search db = yes
ea = auto
cnid scheme = dbd
[TimeCapsuleB]
path = /media/usb/TimeCapsuleBackup/TimeCapsuleB/
time machine = yes
valid user = userb
invisible dots = yes
search db = yes
ea = auto
[PogoPlug1]
path = /media/usb/PogoPlug1/
cnid scheme = dbd
ea = auto
mac charset = MAC_ROMAN
invisible dots = yes
search db = yes
valid user = userA userB
[OSX-Exchange]
path = /media/usb/OSX-Exchange/
cnid scheme = dbd
ea = auto
mac charset = MAC_ROMAN
invisible dots = yes
search db = yes
valid user = userA userB
내 마운트 테이블
/etc/auto.misc on /media/usb type autofs (rw,relatime,fd=6,pgrp=1658,timeout=300,minproto=5,maxproto=5,indirect)
/dev/sdb2 on /media/usb/TimeCapsuleBackup type hfsplus (ro,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8)
/dev/sdc2 on /media/usb/PogoPlug1 type hfsplus (ro,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8)
/dev/sdd2 on /media/usb/OSX-Exchange type hfsplus (ro,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8)
/media/usb/의 권한
drwxrwxrwx 1 evils evils 20 Feb 27 01:24 OSX-Exchange
drwxrwxr-x 1 evils evils 18 Feb 27 01:19 PogoPlug1
drwxrwxr-x 1 root root 12 Feb 27 01:00 TimeCapsuleBackup
모든 드라이브는 autofs를 통해 마운트됩니다. UserA와 UserB는 모두 그룹 0의 구성원이며 터미널을 통해 이 작업을 수행하려고 하면 모든 드라이브에 쓸 수 있습니다.
이제 UserA로 TimeCapsuleA 볼륨에 액세스하려고 하면 전체 쓰기 액세스 권한을 얻고 해당 볼륨을 TimeMachine 백업 볼륨으로 사용할 수 있습니다. 하지만 그룹 0에 속한 동일한 사용자로 OSX-Exchange 또는 PogoPlug1에 액세스하면 쓰기 권한이 없습니다. 터미널을 통해 동일한 사용자로 동일한 디스크에 쓸 수 있다는 점에서 정말 이상한 일입니다. 소유권을 정확히 이 사용자로 변경하면 다시 쓰기 액세스 권한을 얻지만 이 특정 사용자만 다시 쓸 수 있고 동일한 gid 또는 유효한 사용자 매개변수에 있는 다른 사용자는 쓸 수 없습니다.
이제 해당 데이터 드라이브에 액세스해야 하는 사용자가 여러 명 있으므로 쓰기 사용자가 변경될 때마다 소유권을 변경하지 않고 동일한 드라이브에 쓰는 방법을 찾아야 합니다.
내 netatalk 로그 파일은 netatalk를 시작할 때 다음을 출력합니다.
Feb 27 00:59:08.422374 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 00:59:08.423147 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 00:59:08.423549 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 00:59:08.423828 cnid_dbd[3314] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.658562 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.659329 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.659725 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.660002 cnid_metad[3460] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.799875 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.800798 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.801209 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 01:04:34.801534 afpd[3459] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.508492 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineFH" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.508942 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "TimeMachineNS" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.509239 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "PogoPlug1" does not support Extended Attributes or read-only volume
Feb 27 01:04:53.509531 afpd[3464] {netatalk_conf.c:196} (W:AFPDaemon): volume "OSX-Exchange" does not support Extended Attributes or read-only volume
소유권이 로그인한 사용자와 일치할 때 전체 쓰기 액세스 권한이 있더라도 마찬가지입니다.
AFP를 통해 새 폴더를 만들려고 할 때 발생하는 오류는 다음과 같습니다.
Feb 27 01:05:08.355873 afpd[3467] {ad_open.c:976} (E:Default): ad->ad_ops->ad_mkrf(ad_p) failed: Permission denied
어떤 도움이라도 주시면 감사하겠습니다!
답변1
모든 마운트가 읽기 전용이라는 사실과 관련이 있을까요? 세 권 모두로마운트 테이블의 속성입니다. 사용rw(읽기-쓰기) 옵션/etc/fstab다음과 같이 자동으로 마운트하는 경우 파일을 삭제하세요.
/dev/sXXX /media/usb/volume_name type hfsplus rw,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8
또는 수동으로 마운트하는 경우 다음을 사용합니다.
sudo mount /dev/XXX /media/usb/volume_name -t hfsplus -o rw,nosuid,nodev,noexec,relatime,sync,umask=22,uid=0,gid=0,nls=utf8
답변2
나는 비슷한 문제로 벽에 부딪혔습니다. 오류 메시지는 동일합니다.
cnid_metad[]: volume "MyVolume" does not support Extended Attributes or read-only volume
Netatalk 버전은 3.1.8을 사용했지만 기본적으로 모든 3.x는 동일한 메시지를 생성합니다.
제 경우에는 reiserfs 파일 시스템을 공유하고 있었고 확장된 속성이 필요하지 않았습니다. 이는 데이터 액세스 볼륨일 뿐입니다. 그래서 내 Debian Linux 시스템 서버의 daemon.log에서 오류를 지우고 싶었습니다. 로그가 폐기되기 때문입니다.
해결책은 모든 설정에서 확장 속성을 비활성화 하고 ea = none
.appledouble = v2
Volume 섹션에 코드를 입력합니다.
[MyVolume]
...
appledouble = v2
ea = none
답변3
구성 키는 복수형입니다: valid users
.