Ubuntu与Android通过Samba无线共享文件无写入权限问题排查
Android与Ubuntu SMB共享无法创建文件/目录的解决方案
问题现状
- smbd服务正常运行,状态信息:
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-06-22 10:10:05 CEST; 8min ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Process: 67871 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS) Main PID: 67880 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 16539) Memory: 9.3M CPU: 237ms CGroup: /system.slice/smbd.service ├─67880 /usr/sbin/smbd --foreground --no-process-group ├─67882 /usr/sbin/smbd --foreground --no-process-group ├─67883 /usr/sbin/smbd --foreground --no-process-group └─67884 /usr/lib/x86_64-linux-gnu/samba/samba-bgqd --ready-signal-fd=45 --parent-watch-fd=11 --debuglevel=0 -F
- 共享目录权限为
drwxrwxrwx,目录详情:
drwxrwxrwx 2 nikki nikki 4096 Jun 22 09:37 ./ drwxrwxrwx 3 nikki nikki 4096 Jun 22 10:02 austauschtest/
- Android端文件管理器可看到共享目录,但无法创建文件或目录,核心问题指向Samba权限配置。
排查与解决步骤
1. 修正Samba共享配置
打开/etc/samba/smb.conf,找到对应共享目录的配置段,确保包含以下关键参数:
read only = no:明确开启写入权限create mask = 0777:设置新文件的默认权限directory mask = 0777:设置新目录的默认权限force user = nikki:强制共享连接使用目录所属用户身份,避免权限映射冲突
示例配置段:
[austauschtest] path = /path/to/austauschtest read only = no create mask = 0777 directory mask = 0777 force user = nikki force group = nikki
2. 确认Samba用户权限
若使用密码验证连接,需确保Samba用户拥有写入权限:
- 创建或更新Samba用户密码:
sudo smbpasswd -a nikki
- 重启smbd服务使配置生效:
sudo systemctl restart smbd
3. 检查AppArmor限制
尽管服务启动时已执行update-apparmor-samba-profile,仍需确认AppArmor是否阻止写入:
- 查看AppArmor状态:
sudo aa-status
- 若smbd处于enforce模式,临时切换为complain模式测试:
sudo aa-complain /usr/sbin/smbd
测试正常后,可选择永久更新规则或保持complain模式。
4. 验证SELinux(若启用)
如果系统启用了SELinux,需设置正确的目录上下文:
sudo chcon -t samba_share_t /path/to/austauschtest
测试验证
修改配置并重启服务后,在Android端重新连接共享目录,尝试创建文件/目录,确认权限正常。
内容的提问来源于stack exchange,提问作者jento
相关产品推荐
相关产品推荐

