需统一授权多级目录并配置samba或nfs:一、用sudo mkdir -p创建路径,chown -r和chmod -r设权限;二、图形界面共享顶层目录即可继承子目录;三、smb.conf中为各层路径设独立共享段;四、nfs方案通过/etc/exports导出整树并客户端挂载。

如果您在银河麒麟操作系统中需要将包含多层子目录结构的文件夹共享至局域网其他设备,但发现仅共享顶层目录时子目录不可见或权限异常,则可能是由于目录层级未统一授权或Samba服务未识别嵌套路径。以下是解决此问题的步骤:
一、创建并配置物理多级共享目录
该方法确保共享目录结构完整、权限一致,避免因父目录缺失导致子目录无法访问。Samba服务依赖实际文件系统路径,必须保证所有中间目录均存在且具备可遍历权限。
1、打开终端,执行命令创建嵌套多级目录(例如/srv/share/docs/project/reports):
sudo mkdir -p /srv/share/docs/project/reports
2、将整个目录树所有权统一赋予目标用户(假设用户名为kylin):
sudo chown -R kylin:kylin /srv/share
3、设置目录遍历权限(x位对目录至关重要):
sudo chmod -R 755 /srv/share
4、验证路径可被当前用户访问:
su - kylin -c "ls -l /srv/share/docs/project/reports"
二、图形界面方式启用多级目录共享
该方法利用系统内置共享功能,自动继承顶层目录的共享属性至所有子目录,适用于无需区分子目录权限的通用协作场景。共享角标仅显示于顶层文件夹,但子目录内容在客户端连接后可正常浏览与操作。
1、在文件管理器中定位已创建的多级目录顶层文件夹(如/srv/share)。
2、右键点击该文件夹,选择“属性”,切换到“共享”标签页。
3、勾选“共享此文件夹”,取消勾选“只读”,启用“允许游客访问”。
4、点击“确定”,在弹出的权限提示框中输入当前用户的开机登录密码。
5、再次点击弹窗中的“确定增加权限”,系统自动完成Samba服务注册与共享发布。
三、手动编辑smb.conf实现精准多级路径映射
该方法支持为不同层级目录定义独立共享名与权限策略,例如将/srv/share/docs设为只读共享,而/srv/share/reports设为读写共享。适用于需按部门或项目精细隔离访问控制的环境。
1、使用终端执行命令打开Samba主配置文件:
sudo vim /etc/samba/smb.conf
2、在文件末尾添加两个独立共享段(注意路径必须真实存在):
[docs-share]
comment = Departmental documents
path = /srv/share/docs
public = yes
read only = yes
browseable = yes
[reports-share]
comment = Project reports
path = /srv/share/reports
public = no
writable = yes
valid users = kylin, admin
3、保存退出后,重启Samba服务使配置生效:
sudo service smbd restart
4、若新增共享段启用了用户验证,需为kylin和admin分别设置Samba密码:
sudo smbpasswd -a kylin
sudo smbpasswd -a admin
四、NFS协议替代方案(适用于Linux/Unix客户端)
NFS协议原生支持目录树挂载,客户端挂载顶层目录后,所有子目录自动可见且权限继承严格遵循Linux文件系统规则,规避Samba在跨平台路径解析中可能出现的大小写或编码兼容性问题。
1、安装NFS服务器组件:
sudo apt install nfs-kernel-server
2、编辑NFS导出配置文件:
sudo vim /etc/exports
3、添加多级目录导出规则(示例允许多网段读写):
/srv/share 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
4、导出共享并重启服务:
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
5、在客户端执行挂载(以192.168.1.100为服务端IP):
sudo mount -t nfs 192.168.1.100:/srv/share /mnt/kylin-share
五、验证多级目录共享可用性
该步骤确认各层级目录是否在客户端正确呈现,排除因缓存、服务状态或网络策略导致的临时不可见问题。必须在服务端完成配置后立即执行,避免误判为配置失败。
1、在服务端检查Samba共享列表:
smbclient -L localhost -U%
2、在Windows客户端运行栏输入:
\服务端IP地址(例如\192.168.1.100)
3、在麒麟客户端文件管理器中,右键选择“连接到服务器”,服务类型选“samba”,地址栏填入smb://服务端IP地址。
4、连接成功后,在共享根目录下逐级展开,确认docs → project → reports路径完整可访问。











