已安装 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)

名为“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 记忆棒应该具有权限drwxrwxrwxdrwx------不是umask=0000.我更改了掩码以获得更细粒度的访问权限策略(我们区分文件和目录)。

Samba 共享应该按原样工作(只要您可以嵌套 Samba 共享,我认为没有什么可以阻止它)。

相关内容