![Ubuntu 是否提供任何限制服务器访问的客户端方法?](https://linux22.com/image/1182227/Ubuntu%20%E6%98%AF%E5%90%A6%E6%8F%90%E4%BE%9B%E4%BB%BB%E4%BD%95%E9%99%90%E5%88%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BF%E9%97%AE%E7%9A%84%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%96%B9%E6%B3%95%EF%BC%9F.png)
我有一个家庭媒体文件服务器,我已将 Ubuntu 20.04 上的新用户(通过 Samba)连接到该服务器。该文件服务器是一台充当 NAS 工作的微型 PC。
新用户 9 岁,想要获得对几个包含儿童视频、她自己的文件等的文件夹的读取权限。我可以为她创建这些文件的本地副本,但最好找到某种方法来限制从客户端而不是在服务器上的访问。
我想让用户拥有 samba 共享的 root 权限,但显然在 UI 中以其他方式限制它
是否有一个故意限制/只读的文件管理器可以安装,它没有任何删除或更改文件的能力?或者可以使用内部允许或禁止的文件夹位置列表,而无需参考用户的权限?
是否可以(可能)从 Thunar 的功能中删除 -rm 和 -mv 命令?例如,可以使用自定义操作来禁用“删除”键(它不在菜单中),但仍然可以在文件服务器上导航。在这种情况下,“父”目录实际上是父级的目录
是否有任何家长控制类型的实用程序可以限制文件管理器以及互联网访问,或者代替互联网访问?
作为 1 的替代方案,这仅用于播放媒体,那么是否存在任何只能用于客户端的“视频点唱机”应用程序不能移动/重命名/删除?
另外,作为 1 的替代方案,我可以在文件服务器上设置一个媒体服务器应用程序,围绕 Samba 进行设置 - 但这似乎并不像 Puppy Linux 提供的软件包那样简单
===
人们常说“孩子们总能找到办法绕过这些事情”,但这涉及到一系列关于能力水平的假设——记住我的解决方法是制作一个本地副本
谢谢 xx Catty
答案1
我找到了使用 Samba 权限的解决方案,但仍然想知道是否有任何客户端方法。(我从未听说过,但谁知道呢)。
在我的环境中,有一个现有的+正在工作的类似 NAS 的文件服务器,共享一个外部 NTFS 文件系统,其中从未在 Windows 内部设置过用户权限,运行着一个 Samba 服务器,还有一个 Ubuntu 客户端 PC,里面有一个成年用户(“成人名称”)和一个儿童用户(“儿童名称”)...
Samba NAS-box 需要能够将孩子的 Ubuntu 用户名添加为用户。例如通过“adduser childname”
孩子的用户名已添加到服务器,但不能(轻松)用于在 NTFS 磁盘上设置任何 acl/Linux 文件权限,我只需要它用于 Samba
在服务器上创建用户后,必须将其添加到 Samba 并在 Samba 上启用。此操作的命令是“smbpasswd -a childname”,然后是“smbpasswd -e childname”。
只要在添加子用户之前它们工作正常(有很多指南),服务器用于挂载硬盘的 /etc/fstab 行就不那么重要了,可以保持不变
客户端用于挂载 Samba 共享的 /etc/fstab 行也不太重要,不需要为 acl、fmask= 和 dmask=、file_mode= 和 folder_mode= 添加新设置,也不需要创建任何其他凭据文件
无需尝试创建用户映射文件来启用 ntfs 磁盘上的 acl/POSIX 文件权限(这可能是一种可行的方法)
在各自的 etc/fstab 文件中,服务器可以使用 ntfs 作为文件类型,但客户端如果要自动挂载,则必须使用 cifs
在共享硬盘上,最好不要将儿童用户的文件夹放在成人用户的文件夹中,或者将成人的文件夹作为驱动器的根目录(就我而言,我无法轻易避免这些事情)
可以通过编辑 smb.conf 在 Samba 内部管理添加无写权限和有限读权限的子用户所需的简单权限
在 smb.conf 的全局设置中需要添加这一行:-
可浏览 = 否
在 smb.conf 中,成人用户共享的条目需要添加以下几行:-
阅读列表 = root 成人姓名 儿童姓名
写入列表 = 根成人名称
在上述情况下,尽管这违反直觉,但孩子的用户名必须在成人的 samba 共享的读取列表中,因为他们的文件夹位于其中,并且权限不会简单地“遍历”以让他们读取他们的共享,而不能同时读取上面的文件夹
设置 browserable = no 并不安全,就像从该用户中删除这些文件的 acl/POSIX 文件权限一样,但在这种情况下它已经足够了
在 smb.conf 中,子用户共享的条目需要添加以下几行:-
阅读列表 = root 成人姓名 儿童姓名
写入列表 = 根成人名称
就我而言,上述更改不会影响本地 Windows PC 访问共享
其他方法可能是为子用户制作所有文件的本地副本,或者将共享硬盘重新格式化为 ext4,并以不同的方式组织文件夹布局 - 但我发现这种方法更可取,它实现了我想要的,并且它使用了 Samba 的访问控制(缺少 acl)
如果我犯了任何错误,我将非常感激。如果有一种更简单的方法可以在 Ubuntu UI 中限制用户,那也会很有用(因为如果存在的话,在上面添加这些东西也没什么坏处)。