如何使Samba共享不询问密码


20

注意:我可能已经阅读了多达50个不同的页面,这些页面描述了如何在2年的时间里设置公共Samba共享,但对我没有任何帮助。我不知道我需要设置多少RTFM。

我需要/想要在我的家庭服务器上为两个工作站设置一个完全开放的公共文件共享。

设置如下:

服务器

  • 德比安·威兹(Debian Wheezy)
  • sudo smbd --version给我Version 3.6.6
  • 我要共享的2个本地分区,由于分区太旧且取自Windows计算机,因此以NTFS格式进行了格式化。我无法将它们格式化为ext * FS,因为它们有很多数据,我无法(但尚未)将其移动到其他任何地方。
  • 由于缺乏独创性而被命名为“ homeserv”的机器。

客户

  1. Debian测试(Jessie)
  2. Windows 7(两台不同的计算机)。实际上,我的机器是Debian / Windows dualboot,而我妻子的机器仅是Windows。

蒸馏后的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的两台客户机上,我都得到相同的结果:“登录/密码”对话框。NO的组合security = usermap to guest = Bad usersecurity = shareguest ok = yes和这样的帮助。

在网络邻居中单击共享计算机后,Windows 7会立即显示“登录/密码”对话框。smb://homeserv/Debian中的文件路径(在任何文件浏览器中)向我显示两个文件夹:disk1disk2,按预期方式,通过尝试打开它们来打开登录名/密码对话框。

那么,我在计划中缺少的无需输入登录名/密码的内容是什么?这是可用性问题,我不会为文件垃圾箱创建基于用户的身份验证。

Answers:


14

好,我自己找到了答案。

由于从docs和HOWTO以及其他方面绝对不是显而易见的,因此该事情要求输入密码的原因是因为它无法将来宾用户映射到要共享的目录所有者

我有需要挂载RW的NTFS分区,因此我在我的计算机中使用了以下设置/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

配置中最重要的部分是uidgid(也许只是uid,不知道)。它们设置为jonnie服务器上设置的用户的UID和GID (显然不是root用户)。因此,当ntfs-3g挂载这些磁盘时,一切将归他所有。

之后,我将该用户添加到了Samba注册表中(或创建了新的相同用户,无关紧要):

# smbpasswd -a jonnie

它要求输入密码,我输入的密码与主系统相同。

之后,我将force userforce 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

因此,与我相关的最重要的配置是force user

Samba HOWTO提供


1
“显然不是root”。这实际上不是很明显。Samba有数十种故障模式。大多数导致相同的错误消息。这就是为什么您在无用的Google搜索上花费大量时间的原因。一次搜索不仅会带来各种问题,而且找到的答案也将遭受同样的困惑。使用root消除了Linux的安全性,但也使您能够诊断问题。如果它是root用户,那么您将在Linux级别遇到安全问题;如果Samba仍然失败,则问题出在Samba用户的想法之内(他们不同,应该有独特的错误)
MSalters

2

配置可以更短:

创建Unix用户jonnie

useradd jonnie -s /usr/sbin/nologin

创建smbuser

smbpasswd -a jonnie

创建要共享的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所有,并且每个人都有对文件的读写权限。


是的,“将目录的所有者更改为jonnie”可能是这里最重要的部分。感谢您提供更短的解决方案!
hijarian

1

拥有开放的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年开始,我需要设置域策略:将通信从始终数字签名为禁用。


我的天哪,正在更改所谓的公共股的域名政策...(facepalm)。好的,还是谢谢你,但是不,我刚刚尝试过此操作,但smb://homeserv/disk1在Debian中访问仍然需要密码。我使用了Dolphin和Krusader文件浏览器。也许这是KDE中的东西。
hijarian 2014年

嘿,行得通!:D public = yes777权限解决了问题(Win 10托管Ubuntu 18.04)。幸运的是它在我的个人工作站上,所以我不必担心
Arthur Tarasov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.