注:我已经阅读了大概50多个不同的页面,描述了如何在2年的时间内设置公共Samba共享,并且没有任何事情可以为我工作。 我不知道多lessRTFM我需要设置这个东西。
我需要/想要在我的家庭服务器上为两个工作站设置完全打开的公共文件共享。
安装如下:
服务器 :
sudo smbd --version给我Version 3.6.6 。 客户 :
蒸馏后我的smb.conf看起来如下( 逐字 ,没有别的):
[global] workgroup = WORKGROUP security = user map to guest = Bad User [disk1] comment = Disk 1 on 400GB HDD path = /media/disk1 browsable = yes guest ok = yes read only = no create mask = 0755 [disk2] comment = Disk 2 on 400GB HDD path = /media/disk2 browsable = yes guest ok = yes read only = no create mask = 0755
在这两个客户机上,在Debian和Windows中,我都得到相同的结果:login/密码对话框。 没有组合的security = user , map to guest = Bad user , security = share , guest ok = yes ,这样的帮助。
Windows 7显示login/密码对话框右键单击networking邻居中的共享机器后。 在Debian(在任何文件浏览器) smb://homeserv/文件path显示两个文件夹: disk1和disk2 ,如所预期的,通过尝试打开它们带上login/密码对话框。
那么,我在scheme中缺less什么不必inputlogin名/密码? 这是可用性的问题,我不会创build一个基于用户的文件垃圾场的身份validation。
好的,我自己也find了答案。
由于这是从文档和HOWTOs什么都不明显 ,这个事情要求密码的原因是因为它不能将访客用户映射到共享目录的所有者 。
我有NTFS分区,我需要安装RW,所以我用我/etc/fstab的以下设置:
/dev/sdb1 /media/disk1 ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0 2 /dev/sdb2 /media/disk2 ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0 2
最重要的configuration是uid和gid (也许只有uid ,不知道)。 它们被设置为在服务器上build立的用户jonnie的UID和GID(显然不是root)。 所以,当NTFS-3G将挂载这些磁盘,一切都将由他拥有。
之后,我将这个用户添加到Sambaregistry中(或者创build新的相同的,不关心):
# smbpasswd -a jonnie
它要求input密码,我已经input了和主系统一样的密码。
之后,我已经将force user和force group设置添加到smb.conf :
[global] workgroup = WORKGROUP netbios name = HOMESERV security = share [disk1] comment = Disk 1 on 400GB HDD path = /media/disk1 browsable = yes guest ok = yes read only = no create mask = 666 directory mask = 777 force user = jonnie force group = jonnie [disk2] comment = Disk 2 on 400GB HDD path = /media/disk2 browsable = yes guest ok = yes read only = no create mask = 666 directory mask = 777 force user = jonnie force group = jonnie
所以,与我有关的最重要的configuration是force user 。
由Samba HOWTO提供
有一个开放的Samba共享的快速和肮脏的方式是有:
# ----------------------- Standalone Server Options ------------------------ # # Scurity can be set to user, share(deprecated) or server(deprecated) # # Backend to store user information in. New installations should # use either tdbsam or ldapsam. smbpasswd is available for backwards # compatibility. tdbsam requires no further configuration. security = share passdb backend = tdbsam
并有股份定义如下:
[export] comment = Data Export Directory path = /data/export read only = no public = yes browseable = yes writeable = yes create mask = 666 directory mask = 777
重新启动守护进程。
对于Windows 7客户端,截至2014年,我需要设置域策略:将通信从数字签名始终设置为禁用。
configuration可以更短:
创buildunix用户jonnie
useradd jonnie -s /usr/sbin/nologin
创buildsmbuser
smbpasswd -a jonnie
创build要共享的Linux目录
mkdir /mysmbshare
将目录的所有者更改为jonnie
chown /mysmbshare jonnie
smb.conf文件
[global] workgroup = MyWorkGroup server string = Hello, use me security = share guest account = jonnie passdb backend = tdbsam [the_public_share] path = /mysmbshare writable = yes printable = no public = yes
所有文件都由jonnie拥有,每个人都可以访问这些文件。