如何设置samba共享作为特定用户挂载?

我想创build用户可以作为特定的samba用户连接的samba共享。 我创build了用户,让我们说亨利,我想在他的家中存储。

所以我在我的/etc/samba/smb.conf中:

[myshare] path = /home/henry browsable = yes read only = no guest ok = no create mask = 0644 

现在当我通过smbclient连接一切都很好。 但是我想把这个份额作为CIFS。 我可以:

 sudo mount -t cifs //myserver/myshare /media/remote-share -o user=henry 

但是当我尝试在/ media / remote-share中创build一个文件时,我得到了权限被拒绝:(

我应该如何configuration它,如果我希望每个人都有访问,但作为特定用户,而不是作为客人?

服务器和客户端都是ubuntu机器。

好吧,我已经重新阅读你的问题,并有另一个答案。

当你在/ etc / fstab中挂载它或者从命令行使用sudo mount时,你需要设置uid和gid以及umask(file_mode和dir_mode),以便客户端的本地用户可以使用共享。 否则,它将默认由root和W所拥有,只有root。 它可能不会伤害显式挂载为RW。

 sudo mount -t cifs // myserver / myshare / media / remote-share \
   -o rw,user = henry,uid = xxx,gid = yyy

其中xxx和yyy是本地 (客户端本地),即用户和组在安装时应“拥有”共享。 如果只有一个本地用户需要访问,那么gid可能并不重要。 如果多个本地用户需要访问,则必须设置gid,并且每个需要访问的本地用户必须是该gid的成员。

还有其他选项可能需要设置,具体取决于您的networking设置(例如,您可能需要指定域)。 有关更多详细信息,请参阅mount.cifs(8)的联机帮助页。

顺便说一句,如果您从/ etc / fstab挂载它,请参阅关于凭证文件的注释。 fstab是世界上可读的,所以不是放置密码的好地方。 凭证文件可以由根,模式600拥有。

mount命令位于客户端,并不控制服务器允许的内容。

您需要在服务器上设置共享,以便特定组中的任何人(“有效用户=组名”)都可以连接到该共享,然后强制连接成为用户henry(“force user = henry”),不pipe他们实际login的是什么用户名/密码。

在Debian上,henry可能已经有了他自己的专用组(debian默认为每个用户创build一个组),但是不要使用它,除非你希望该组中的每个人都可以访问所有的henry文件而不仅仅是共享中的文件。

例如创build一个名为“henry-share-g”的unix(或ldap或Active Directory)组,并将需要访问该共享的任何人添加到该组中。

然后在samba中configuration共享以设置权限,以便用户和组创build文件RW,并且由用户和组创build目录RWX和setgid(以便使用“henry-share-g”组创build新文件/目录) )。

比如这样的东西:

 [myshare的]
    path= /家/亨利
    强制安全模式= 0664
    强制目录安全模式= 2775
    强制创build模式= 0664
    强制目录模式= 2775
    只读=否
    可浏览=是
    强制用户=亨利
    强制团体= henry-share-g
    有效用户= henry-share-g

这个例子使得文件和目录具有世界可读性,以及用户和组的RW。 如果你不想要,那么使用0660的文件和2770的目录。

顺便说一下,上面的内容大概是我在工作时在我的samba服务器上做的,只要有一位教授想要在他的研究小组中的每个人都能够使用一个小组。

唯一真正的区别是我不使用现有的用户帐户。 我在AD中创build了一个专用用户以及一个专门的团队,因为需要将教授的个人文件和他/她的研究小组的文件分开。 我还为该用户和组设置了配额,这与用户的个人配额是分开的。 即我会创build和使用像“henry-share-u”而不是使用现有的“henry”帐户。

这取决于您在smb.conf中select的passdb后端。

如果您使用tdbsam后端(由samba推荐)并为user设置security

 security = user passdb backend = tdbsam 

您可以使用/usr/bin/smbpasswd来添加samba用户:

  1. 使用/usr/sbin/useradd添加一个UNIX用户
  2. 使用smbpasswd -L -a <user>添加samba用户smbpasswd -L -a <user> (-L:本地模式,-a:添加用户)
  3. 使用/etc/samba/smbusers映射您的用户[语法: <unix-user> = <smb-user1> <smb-user2> <smb-userN> ]

这些path可能会延迟你的GNU / Lunux发行版。