我有一个关于使用我的 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)
名为“ADAC_STICK”的 USB 棒安装到 /media/usbadac
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
所以我创建了系统用户和 Samba 用户“家族”
sudo adduser --diabled-login family
sudo smbpasswd -a family
使用此帐户连接到 Samba(例如通过 Android 设备或 Windows 通过本地网络)无法正常工作,并会给出错误,即不允许该帐户。
在我看来,文件夹 /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
,将pi
和放入family
该组中,然后使用该组和更好的掩码挂载 USB 记忆棒:
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 共享,我认为没有什么可以阻止它)。