USB 스틱에 사용자 권한이 설치되었습니다.

USB 스틱에 사용자 권한이 설치되었습니다.

Raspberry Pi 및 Raspbian/Samba 서버와 함께 설치된 USB 장치의 사용자 권한에 대한 질문이 있습니다.

"/media" 폴더에는 아래와 같이 2개의 하위 폴더가 있습니다.

drwx------ 45 pi pi 8192 ADAC_STICK   (I think this one was created automatically)
drwxr-xr-x 2 root root 4096 usbadac   (Created this on my own with mkdir)

/media/usbadac에 설치된 "ADAC_STICK"이라는 USB 스틱

sudo mount -t vfat -o uid=pi,gid=pi,umask=0000 /dev/sda1 /media/usbadac

/media/usbadac 폴더에는 이제 다음과 같은 권한이 있습니다("/media"의 "ls -la"를 통해).

drwx------ 45 pi pi usbadac

로컬 네트워크(인턴 IP)를 통해 사용자 "pi"로 연결하면 제대로 작동합니다.

이제 질문이 온다:네트워크의 다른 사용자가 /media/usbadac/Family에 연결하기 위해 두 번째 계정 "Family"를 사용하고 싶습니다.

그래서 시스템 사용자와 Samba 사용자 "family"를 만들었습니다.

sudo adduser --diabled-login family
sudo smbpasswd -a family

이 계정을 사용하여(예: Android 장치 또는 Windows를 통해 로컬 네트워크를 통해) Samba에 연결하면 제대로 작동하지 않으며 계정이 허용되지 않는다는 오류가 표시됩니다.

/media/usbadac 폴더의 권한은 다음과 같아야 합니다.

drwxrwxrwx pi pi usbadac
drwxr-xr-x pi pi usbadac

사용해 chmod 777 /media/usbadac도 효과가 없습니다.

삼바 구성:

[USB-ADAC]
path = /media/usbadac
writeable = yes
guest ok = no
valid users = pi

[FAMILY_USB-ADAC]
path = /media/usbadac/Family
writeable = yes
guest ok = no
valid users = pi,family

이제 무엇을 해야 할까요? 내가 무엇을 잊었나요?

답변1

주요 문제는 USB 스틱에 POSIX 액세스 권한과 호환되지 않는 VFAT 파티션이 있다는 것입니다(사실 NTFS와 달리 액세스 권한을 전혀 지원하지 않습니다). 따라서 커널이 USB 스틱을 마운트할 때 /media/usbadac해당 옵션 줄에 정의된 가상 액세스 권한을 반복적으로 적용합니다 /etc/fstab. 이러한 액세스 권한은 다른 옵션을 사용하여 제거하고 다시 설치할 때까지 변경할 수 없습니다.

따라서 보다 느슨한 액세스 권한을 부여해야 합니다. 예를 들어 이라는 UNIX 그룹을 생성하고 해당 그룹 에 을 sambausers넣은 다음 해당 그룹과 더 나은 마스크를 사용하여 USB 스틱을 마운트할 수 있습니다.pifamily

groupadd sambausers
usermod -a -G sambausers pi
usermod -a -G sambausers family

sudo mount -t vfat -o uid=pi,gid=sambausers,fmask=0113,dmask=0002 /dev/sda1 /media/usbadac

마운트된 USB 스틱에 대신 권한이 있어야 하기 때문에 답변을 작성할 때 일부 설정을 변경한 것 같습니다 drwxrwxrwx. 보다 세분화된 액세스 권한 정책을 갖도록 마스크를 변경했습니다(파일과 디렉터리를 구분함).drwx------umask=0000

Samba 공유는 있는 그대로 작동해야 합니다(Samba 공유를 중첩할 수 있는 한 이를 막을 수 있는 방법은 없다고 생각합니다).

관련 정보