Samba:配置一个对每个人都具有写权限的共享,并映射为特定用户

Samba:配置一个对每个人都具有写权限的共享,并映射为特定用户

我对 samba 有以下配置:

[global]
  workgroup = WORKGROUP
  netbios name = z
  log level = 0 vfs:0
  syslog = 0
  max log size = 0
  load printers = No
  printcap name = /dev/null
  disable spoolss = Yes
  preload = share
  default service = share
  guest ok = Yes
  security = user
  map to guest = Bad User
  guest account = ibm86

以及以下分享:

[data]
  force group = ibm86
  path = /data
  writeable = yes
  guest ok = yes
  browseable = yes

/data我正在尝试共享网络中的目录以供所有人写入。

现在,我可以读取磁盘上的所有文件,但无法写入任何内容。Windows 提示“您需要权限才能执行此操作”。

作为映射用户,我可以毫无问题地读取/写入该目录:

[ibm86@z ~]$ stat /data
  File: ‘/data’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 900h/2304d      Inode: 2           Links: 7
Access: (0755/drwxr-xr-x)  Uid: ( 1000/   ibm86)   Gid: ( 1000/   ibm86)
Access: 2015-04-03 05:09:28.631608867 +0300
Modify: 2015-04-03 05:03:58.843604604 +0300
Change: 2015-04-03 05:09:22.783608792 +0300
 Birth: -

[ibm86@z ~]$ cd /data
[ibm86@z /data]$ touch a
[ibm86@z /data]$ ls -l a
-rw-rw-r-- 1 ibm86 ibm86 0 Apr  3 05:23 a

那么,发生了什么?我做错了什么?这曾经完美地工作,security = share但自从 Ubuntu 从 Samba 2.x 升级以来,它根本不起作用。我目前在Version 4.1.6-Ubuntu

答案1

您还需要添加force user = someusername。由于您当前的配置是 unix 文件权限,因此不允许一个用户更改其他用户的文件。如果您希望不同的用户能够在共享中的所有文件上进行写入,则需要强制用户和组,以便共享中的所有文件都归同一用户所有,然后该用户将具有写入权限。我通常会这样做(用户和组名称取决于您的发行版,但通常是 nobody / noone / nogroup / nouser 之一):

force user = nobody
force group = nogroup

相关内容