hij*_*ian 27 file-sharing samba
注意:我已经阅读了大约 50 个不同的页面,这些页面描述了如何在2 年的时间内设置公共 Samba 共享,但没有任何内容对我有用。我不知道设置这些东西需要多少 RTFM。
我需要/想要在我的家庭服务器上为两个工作站设置一个完全开放的公共文件共享。
设置如下:
服务器:
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
Run Code Online (Sandbox Code Playgroud)
在两台客户端机器上,在 Debian 和 Windows 中,我得到相同的结果:登录/密码对话框。NO的组合security = user
,map to guest = Bad user
,security = share
,guest ok = yes
和这样的帮助。
在我单击网络邻居中的共享机器后,Windows 7 立即显示登录/密码对话框。smb://homeserv/
Debian 中的文件路径(在任何文件浏览器中)向我显示了两个文件夹:disk1
和disk2
,正如预期的那样,通过尝试打开它们带来登录/密码对话框。
那么,我在不需要输入登录名/密码的方案中缺少什么?这是可用性问题,我不会为文件垃圾场创建基于用户的身份验证。
hij*_*ian 20
好的,我自己找到了答案。
由于这在文档和 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
Run Code Online (Sandbox Code Playgroud)
最重要的配置部分是uid
和gid
(也许只有uid
,不知道)。它们被设置为在jonnie
服务器上设置的用户的 UID 和 GID (显然不是 root)。所以,当ntfs-3g挂载这些磁盘时,一切都归他所有。
之后,我将此用户添加到 Samba 注册表(或者可能创建了新的相同的用户,不在乎):
# smbpasswd -a jonnie
Run Code Online (Sandbox Code Playgroud)
它要求输入密码,我输入的与主系统相同。
之后,我已将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
Run Code Online (Sandbox Code Playgroud)
因此,与我相关的最重要的配置是force user
.
小智 6
配置可以更短:
创建unix用户jonnie
sudo useradd jonnie -s /usr/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
创建smbuser
sudo smbpasswd -a jonnie
Run Code Online (Sandbox Code Playgroud)
创建Linux目录进行共享
mkdir /mysmbshare
Run Code Online (Sandbox Code Playgroud)
将目录的所有者更改为 jonnie
sudo chown jonnie /mysmbshare
Run Code Online (Sandbox Code Playgroud)
smb配置文件
[global]
workgroup = MyWorkGroup
server string = Hello, use me
security = user
map to guest = Bad User
guest account = jonnie
passdb backend = tdbsam
[the_public_share]
path = /mysmbshare
writable = yes
printable = no
public = yes
Run Code Online (Sandbox Code Playgroud)
所有文件均归 jonnie 所有,每个人都可以对文件进行读写访问。
归档时间: |
|
查看次数: |
166401 次 |
最近记录: |