周末在折腾群晖时遇到这么一个需求,想要在网上邻居中对于无权限的用户把根目录的共享文件夹隐藏掉,在研究了半天后终于把这个问题完美解决了,下面和大家分享下解决这个问题的几个方法。
1、 方法一
第一种是一种迂回的方法,在控制面板 -> 指定共享文件夹 -> 编辑 -> 常规选项卡中勾选下图这个选项,同时把需要控制权限的内容复制到该共享文件夹下的一个子目录中,然后在 file station 中对这个子目录设置用户的权限即可。
这么设置可以达到控制权限的目的,但是并不能对根目录的共享文件夹进行隐藏。

2、 方法二
第二种仍然是在刚才提到的共享文件夹的常规选项卡中设置,在上面那个设置的上面一行有下图这个选项,勾选这个后虽然可以正确的在网上邻居中隐藏共享文件夹,但是它的问题是对所有用户都隐藏了共享文件夹!即使你登录的是管理员用户,拥有所有共享文件夹的权限,在对指定共享文件夹设置了这个选项后,进入网上邻居时也会看不到那个共享文件夹了。不过如果在 windows 的文件夹地址栏中写全了共享文件夹的路径时 (例如: \\xx.xx.xx.xx\your_sharefolder_name),有权限的用户还是可以进入这个共享文件夹目录的,但是相比于下面一种完美解决的方法的话还是有一些不方便的。

3、 方法三
第三种是一种完美解决的办法,由于网上邻居实质上是使用了 samba 服务,因此只需要在设置好用户的权限后按照下面的步骤修改下 samba 的配置文件即可。
- 首先需要登录DSM,进入控制面板->用户账号界面,选择需要设置权限的用户点击菜单中的编辑,弹出的界面中点击权限选项卡,之后的界面中对共享文件夹的权限进行设置,将需要隐藏的共享文件夹设置为禁止访问。
- ssh进入群晖,具体如何操作就不在这里赘述了,百度下就能找到相应的操作步骤
- 获得root权限
sudo -i
- 修改samba的配置文件:
vim /etc/samba/smb.conf
- 在文件中添加如下两行:
map to guest=never
access based share enum=yes
其中第一行是对进入 samba 的用户进行了严格控制,没有权限的用户是无法看到群晖里的内容的,第二行就是对根目录的共享文件夹进行权限控制,当前用户只能看到自己有权限的共享文件夹。
- 添加完成后保存重启smb服务(/sbin/restart smbd)或者重启群晖,再次进入网上邻居时就可以看到对于共享文件夹权限的控制生效了。
版权声明:本文为原创文章,版权归 nicolaszf 所有,转载请注明出处!
群辉 DSM 内核是 Linux,读写文件方式和 Linux 一样。vim 打开文件后,按 i 编辑,编辑完后,按 esc 输入:wq 保存
do not modify 下面好多 #还有几行英文命令。
map to guest=never
access based share enum=yes
这两行代码在什么位置添加?添加完成之后是否需要按回车?是否和 word 一样是按 ctrl+s 保存?
以上的操作是针对 mac 的么, 我使用 windows 操作的是不是不行。
windows 支持的,前面那个提示应该是提示没权限,vim 编辑前需要先 sudo -i 切换到 root 用户下再执行
输入 vim /etc/samba/smb.conf 后提示 do not modify 怎么办啊
请问,白群晖,按方法 3 设置完以后,再从网络邻居进入文件夹的时候,怎么输密码都显示密码错误了,修改 smb.conf 把那两条删除的话,再从网上邻居进,也还是密码错误,这大概是为什么呢?
我是黑群,DS3615xs,版本是 DSM 5.2-5644 Update 5 。我按照文章中的第三种方法,直接修改 smb.conf,保存不了,切换不到 root,sudo -i 提示 -sh: sudo: not found。
有什么解决办法吗?
查了下应该是和版本有关系,你试试直接使用 root 账户 ssh 登录或者使用原有账户 ssh 登录后使用 su - root 切换到 root 账户,root 的密码和 admin 账号的密码一致。参照官网的说明 (https://www.synology.com/zh-cn/knowledgebase/DSM/tutorial/Management/What_is_the_username_and_default_password_for_accessing_my_Synology_Product_via_Telnet_SSH)
我是黑群,DS3617xs,版本是 DSM Ver6.2.2 。我按照文章中的第三种方法,修改了 smb.conf,然后也存盘了。重启群晖后,smb.conf 文件的内容,没有变化,还是修改前的样子。知道是什么原因吗?是群晖有文件防修改机制吗?有什么办法吗?
修改后使用 /sbin/restart smbd 命令重启下 smb 服务试试,这样是可以立即生效的,之后再重启群晖后进 ssh 看看配置是不是还会丢失。不过我这里白裙 DS218 + 最新的系统直接重启看着也是可以成功保存配置的。
按照你说的方法,smb.conf 文件修改成功了。但是,还有个问题,群晖默认的 3 个文件夹(home、homes、photo),还是不需要密码就可以在 win10 上用 smb 协议访问啊,这个有什么办法吗?我想让这 3 个文件夹,被访问时也需要输入账号和密码,有办法吗?
你说的情况我没太搞懂,之前其他文件夹也是可以无密码访问的吗?照理使用的账户在群晖的用户账号下设置了密码后,进入网上邻居时都是需要输入密码才能访问的呀,你是在用户账号的设置界面下开启了 guest 访问吗? 针对你说的三个文件夹,其中 home&homes 是群晖的家目录 (概念上类似 linux 系统中 /home 目录下的用户目录),而 home 又是 homes 的子集,是群晖中每一个用户自己的目录,因此各个用户的 home 目录是独立的,而 homes 目录是拥有管理员权限的用户能看到所有用户 home 目录中的内容。如果本身没有多用户使用群晖的需求可以直接在 "控制面板"->"用户账号"->"高级设置" 界面中的下方关闭 "启动家目录服务" 的功能,这样也就不会存在这两个文件夹了。如果有多用户使用的需求且开启了家目录功能的,对于 homes 文件夹,可以在 "控制面板"->"用户账号" 界面中对指定账号编辑权限,在权限设置界面中选择禁止访问 homes 目录即可;对于 home 文件夹,由于各个用户里面的内容是独立互不干扰的,因此也没有必要额外进行隐藏。对于 PHOTO 文件夹,群晖中对于这个文件夹的权限是需要在 photo station 套件中进行权限设置的,进入 photo station 界面后,点击 "设置"->"用户账号",之后的界面中选中需要设置权限的账号,点击编辑 -> 指定权限,之后的界面中取消所有勾选即可。如果刷新网上邻居没有生效的话可以再试下使用 /sbin/restart smbd 命令重启下 smb 服务。
1、在按照你这篇文章中的方法三设置之前,群晖里的其它共享文件夹,也都是可以无密码访问。
2、按照方法三设置后,在 Win10 的 SMB 里面看,其它文件夹都看不到了,只有 home、homes、photo,这三个文件夹可以看到,并且可以无密码访问。
3、我需要使用 Photo Station 和 Monents 这两个套件,在安装 & 设置这两个套件时,记得系统提示需要 home&homes 这两个目录,所以才开启的这两个目录。
4、我现在群晖账号里,只有一个管理员账号 admin,包括 guest 在内的其它账号都已经停用了。
5、photo station 套件里,设置的是使用和 DSM 相同的账号系统,并且没有单独设置新账号。使用的就是 DSM 的 admin 账号。
6、"对于 PHOTO 文件夹,群晖中对于这个文件夹的权限是需要在 photo station 套件中进行权限设置的,进入 photo station 界面后,点击" 设置 "->" 用户账号 ",之后的界面中选中需要设置权限的账号,点击编辑 -> 指定权限,之后的界面中取消所有勾选即可。"
→如第 5 点所述,现在群晖系统里只有一个 admin 账号,是使用中的。这个 admin 账号,在 photo station 的 "设置"->"用户账号" 里,无法进行权限设置。用户名列表里,没有 admin。
7、我在 win10 侧,访问群晖共享文件夹时,没记得输入过账号和密码。我也看了下 win10 的控制面板 - 用户账户 - 管理你的凭据 - Windows 凭据,里面没有保存群晖的账号和密码。我也试了下家里另一台笔记本电脑,也是无密码就能直接方法群晖的共享文件夹。
评论区,每次只能写不超过 200 个字符的内容,我就不得不拆成多条写的,请见谅。(你为啥一次你能写那么多字符啊,哦,你是博客的主人,管理员嘛,O (∩_∩) O 哈哈~)
用的评论插件默认是限制了 200 字符,我之前写的时候给提高了下
,现在给扩大了,应该够用了。
1、你的 admin 账号登录 DSM 界面的时候需要输入密码吗?如果也是不需要密码的话可能是不是因为这个原因导致的 win10 访问共享文件夹不需要密码。不过出于安全考虑的话还是建议另外新建一个账号然后把默认的 admin 账户禁用掉使用比较好一些(尤其是如果有外网访问 DSM 需求的话)。
2、如果 admin 账号是有密码的话,能贴下 smb.conf 配置文件中的内容吗? 或者可以检查下里面是否有这两下配置:security = user; map to guest = Bad User。如果有的话把 map to guest 改成 map to guest = never 后重启下 smb 服务。然后再 win10 访问下群晖看看是否会要求密码登录了。
3、其实我没太懂你的需求,看你的描述的话像是想在网络邻居中隐藏群晖的共享文件夹(包括自己也不需要访问)。如果是这样的话可以直接关闭群晖中的 smb 服务即可,或者说如果你的群晖只有你一个人使用的话,也没必要设置我这个隐藏的操作,只要确保访问网络邻居中的群晖时必须要输入账号密码的话,外人其实就也看不到你群晖里面的内容了。我当初设置这个隐藏的需求是因为想给其他人开一个账号,然后想这个账号进入网上邻居后不要直接看到我群晖中所有的共享文件夹,即使他点击没有权限的共享文件夹时也会弹出没权限的弹窗。