我正在尝试为位于单独数据分区上的共享目录创建一个具有用户级安全性的独立 Samba 文件服务器。问题是,即使某些用户拥有完整的组 rwx 权限,他们也无法访问该分区上的共享。
我最初的想法是在 /srv/shares 处创建一个网络共享,但该共享不在正确的分区上,因此我一直尝试在当前挂载在 /media/bill 的数据分区 (nwk-data) 上创建一个目录共享。但并未成功。
我曾考虑过编辑 fstab 以将数据分区 nwk-data 挂载到 /srv,但不确定这是否重要:在数据分区挂载点上方、之中和下方的各个挂载点为测试目的创建的共享会成功或失败,具体取决于它们是否位于该分区上。
配置:
Ubuntu 桌面 16.04 上的 Samba 4.3
两个用户 (bill、debra) 和一个组 (sambausers,其中 bill 和 debra 是成员)。
三个卷:(a)备份 HDD;(b)系统卷;(c)数据卷。数据卷有三个分区:sdc1 [reserved]、sdc2 [reserved]、sdc3 [nwk-data];这三个分区都挂载到 /media/bill。[nwk-data] 是数据分区。
/media 的所有权是 root:sambausers (chown -R root:sambausers /media)。
/media 的权限对于所有者和组而言均为 rwx(chmod -R 770 /media)。
两台客户端笔记本电脑。每台都搭载 Windows 7 操作系统,每台都有帐户/用户 Bill 和 Debra。
三台机器(服务器和两台笔记本电脑)上每个用户的密码都是相同的。
主共享是位于 /media/bill/nwk-data/users (root:sambausers) 的 [users](所有者和组的 rwx)。
/media 是共享的 [media],用于测试目的 (root:sambausers) (所有者和组的 rwx)。
/media/bill 被共享 [bill] 以用于测试目的 (root:sambausers) (所有者和组的 rwx)。
/media/bill/nwk-data 是共享的 [nwk-data] 用于测试目的 (root:sambausers) (所有者和组的 rwx)。
在 /srv/shares (root:sambausers) (所有者和组的 rwx) 处创建了额外的共享 [test] 以用于测试目的。
在 /media/bshare (root:sambausers) (所有者和组的 rwx) 为测试目的创建了额外的共享 [bshare]。
有效的方法:
- Bill 可以使用他的凭证从两台笔记本电脑访问所有共享内容。
- 黛布拉可以使用比尔的凭证从两台笔记本电脑访问所有共享内容。
- Debra 可以使用她的凭证从两台笔记本电脑访问 [test]、[bshare] 和 [media]。
无效的方法:
- Debra 无法使用她的凭证从任意一台笔记本电脑访问 [bill]、[nwk-data] 或 [users] 或后者的任何子目录。
我已经花了三天时间修改 smb.conf 文件、所有权和权限,但没有任何效果。
问题似乎在于无法访问 /media 的子目录。我不确定问题出在哪里。这可能是 ACL 问题,尽管我对这个主题一无所知。如果您能提供任何关于问题可能是什么的想法,甚至更好的解决方法,我将不胜感激。
答案1
哇。有些问题更适合在 Ubuntu 论坛上提出,这就是其中之一,因为我们需要就此进行对话。
对 /media 和 /media/bill 的所有这些 chown'ing 和 chmod'ing 都绕过了 Linux 为这些目录设置的所有默认安全措施。/media/bill 有一个特殊的权限设置 - 至少它是这样的。如果你看过正常的权限“ls-dl/媒体/账单“首先,看起来甚至比尔都没有遍历权限,因为所有者=组=root并且权限将是drwxr-x---+。这里的关键是“+“。这表示有特殊权限。可以使用以下命令查找这些权限:
getfacl -t /media/bill
它会显示只有 bill 有权遍历 /media/bill 目录以获取其下的内容,而 Bill 则受其权限的约束。不确定现在所有权限更改后会是什么样子。
如果您在 /media/bill/nwk-data/users 创建了共享,则您只有两个选项 - 通常:
[1] 使用选项强制用户=账单在共享定义中。这将使 Debra 在服务器上看起来像 bill,这样她就可以遍历 /media/bill 文件夹。
[2] 将分区挂载到其他位置:上一级的 /media/nwk-data、/srv/mwk-data,或者除 /media/bill 之外的任何位置都可以。
如果这是在论坛上,我会有一些问题,例如在 /media/bill/nwk-data 上安装了什么文件系统以及如何在 smb.conf 中配置共享。
编辑: /media/$USER 是系统为每个本地用户设置的。其目的是为用户可能想要连接到其系统的所有非永久分区或设备提供父目录。
例如,当用户将外部 USB 磁盘插入其计算机时,系统会自动将其安装到 /media/$USER/LABEL。/media/$USER 上的“特殊”权限的原因是为了确保只有连接该设备的用户才能访问该设备,而其他任何人都无法访问。该用户有权遍历 /media/$USER 目录(跨目录)以到达 /LABEL 目录。此时,他受到 /LABEL 目录权限的限制。
在这些条件下,您可以共享某些内容,但您必须使用“强制用户”建议。更改 /media/$USER 上的权限违背了其目的。而且更改系统文件夹 /media 的权限根本就没用。
对于内部分区,最好将其安装在 /media/$USER 以外的其他地方。