我想创建用户可以作为特定 samba 用户连接的 samba 共享。我创建了用户,比如说 henry,我想在他家做存储。
所以我在我的 /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 中创建文件时,我得到权限被拒绝:(
如果我希望每个人都可以访问那里,但作为特定用户而不是访客,我应该如何配置它?
服务器和客户端都是 ubuntu 机器。
好的,我已经重新阅读了您的问题并有另一个答案。
当您将其挂载到 /etc/fstab 或从命令行使用 sudo mount 时,您需要设置 uid 和 gid 以及可选的 umask(file_mode 和 dir_mode),以便客户端上的本地用户可以使用共享。否则,它将默认由 root 拥有,而 W 仅由 root 拥有。并且将其显式安装为 RW 可能并没有什么坏处。
其中 xxx 和 yyy 是本地(客户端本地,即)用户和组,在安装共享时应该“拥有”该共享。如果只有一个本地用户需要访问,那么 gid 可能无关紧要。如果多个本地用户需要访问,则必须设置 gid,并且每个需要访问的本地用户都必须是该 gid 的成员。
可能需要设置其他选项,具体取决于您的网络设置(例如,您可能需要指定域)。有关更多详细信息,请参见 mount.cifs(8) 的手册页。
顺便说一句,如果您从 /etc/fstab 安装凭据文件,请参阅有关凭据文件的说明。fstab 是世界可读的,因此不是放置密码的好地方。凭据文件可以由 root 拥有,模式 600。
mount 命令在客户端,不控制服务器允许的内容。
您需要在服务器上设置共享,以便特定组(“valid users = groupname”)中的任何人都可以连接到共享,然后强制连接为用户henry(“force user = henry”),无论他们实际使用什么用户名/密码登录。
在 ubuntu 上,就像在 debian 上一样,henry 可能已经有自己的专用组(debian 上的 adduser 默认为每个用户创建一个组),但不要使用它,除非您希望该组中的每个人都可以访问所有 henry 的文件,而不仅仅是共享中的文件。
例如,创建一个名为“henry-share-g”的 unix(或 ldap 或 Active Directory)组,并将需要访问该共享的任何人添加到该组。
然后在 samba 中配置共享以设置权限,以便文件由用户和组创建 RW,目录由用户和组和 setgid 创建 RWX(以便使用组“henry-share-g”创建新文件/目录)。
例如这样的:
此示例使文件和目录对用户和组都可读以及 RW。如果您不希望这样,则将 0660 用于文件,将 2770 用于目录。
顺便说一句,上面的内容大致是我在工作时在我的 samba 服务器上所做的事情,每当其中一位教授想要一个小组共享供他的研究小组中的每个人都可以使用时。
唯一真正的区别是我不使用现有的用户帐户。我在 AD 中为共享创建了一个专用用户以及一个专用组,因为需要将教授的个人文件和他/她的研究组的文件分开。我还为该用户和组设置了一个配额,该配额与用户的个人配额是分开的。即我会创建和使用类似“henry-share-u”的东西,而不是使用现有的“henry”帐户。
这取决于您在 smb.conf 中选择的 passdb 后端。
如果您使用
tdbsam
后端(由 samba 推荐)并设置security
为user
:您可以使用
/usr/bin/smbpasswd
添加 samba 用户:/usr/sbin/useradd
smbpasswd -L -a <user>
使用(-L:本地模式,-a:添加用户)添加 samba 用户/etc/samba/smbusers
使用[语法:<unix-user> = <smb-user1> <smb-user2> <smb-userN>
]映射您的用户这些路径可能会在您的 GNU/Lunux 发行版中有所延迟。