挂载在 samba 上不允许 www-data 写入 - 权限被拒绝但创建了空文件

Posted

技术标签:

【中文标题】挂载在 samba 上不允许 www-data 写入 - 权限被拒绝但创建了空文件【英文标题】:mount over samba not allowing www-data to write - permission denied but empty file created 【发布时间】:2013-12-09 23:46:24 【问题描述】:

最近有一个 Ubuntu 12.04 机器正在与另一个机器通信。运行 Samba 3.6.3。

服务器框有一个名为“root”的 samba 共享,映射到 / smb.conf 几乎每个参数都有 0777!

[root]
    writeable = yes
    create mode = 0777
    create mask = 0777
    force create mode = 0777
    path = /
    directory mode = 0777
    force directory mode = 0777
    read only = no

如果我在 fstab 中有以下内容,然后执行 mount -a,它会执行 mount,并且作为 root 我可以正常读写:

//slf.mybiz.net/root /mnt/slf smbfs username=asambauser,password=apassword 0 0

但是,如果我在客户端执行 su www-data(试图模仿 Apache/php 服务器),我会收到以下错误序列:

$ cd /mnt/slf
$ ls -la
total 24
drwxrwxrwx  23 root users    0 Dec  9 17:02 .
(rest deleted, as I presume it's the permissions of . that are important)
$ echo g > ddd
sh: 1: cannot create ddd: Permission denied

(虽然奇怪的是创建了一个0字节的文件)

我认为关于用户是谁的 Samba 链接没有任何巧妙的业务。当然,如果我卸载 /mnt/slf,我可以将 /mnt/slf 作为 www-data 写入。

把我的头发都扯掉了!!!

【问题讨论】:

【参考方案1】:

终于找到有同样问题的人:

https://unix.stackexchange.com/questions/92168/samba-share-permission-denied-user-writing-file-but-still-shows

在 mount 命令中添加“defaults,noperm”为我解决了这个问题

【讨论】:

以上是关于挂载在 samba 上不允许 www-data 写入 - 权限被拒绝但创建了空文件的主要内容,如果未能解决你的问题,请参考以下文章

linux如何挂载samba目录

Android - 在代码中挂载 Samba 共享

sh SFTP允许WWW-DATA

samba多用户挂载

Linux系统Centos7系统下挂载samba共享

「Linux学习」之挂载访问samba服务