这已经被问过一百万次了,我已经看了几十年的几百个“解决方案”,没有一个是 100% 有效的。
我想要的是:
一个简单的、最小的 smb.conf,我可以将它打包在基于 Alpine Linux 的 LXC 容器中,该容器可通过 WORKGROUP 发现、浏览,并允许完全、无限制的访客访问 /mnt/shared 而无需输入密码。家庭成员在他们的计算机(windows、mac、linux、chromeos)上访问“网络”,看到“文件共享”,点击它,它就可以工作(读写访问)。
我试过的:
Samba 配置比 sendmail 更难正确配置。似乎没有任何事情可以正常工作,因此任何给定的配置都会导致以下一项或多项:
更糟糕的是,samba 在环境方面是非常易变的,例如用户帐户、权限和所有权,甚至不匹配的网络类都可能导致它严重失败,并出现无助于诊断问题的通用错误消息。
所以,我想知道的是:有人可以为刚制作的容器提供一个干净的 smb.conf 吗?目录?例如:
[global]
map to guest = Bad User
security = user
guest account = nobody
[shared]
path = /mnt/shared
public = yes
only guest = yes
writable = yes
printable = no
force user = nobody
Run Code Online (Sandbox Code Playgroud)
(注意:上面的配置不起作用)
我可以调整环境以匹配您想要的任何假设(尽管我更喜欢 Alpine 作为发行版,因为它的活动部件较少)。我只想要一个最小的、基线的“保证工作”设置,然后我可以逐步构建它,而不是像我每次必须设置文件共享时那样摇摆不定。
然后我可以制作一个具有规范的、保证工作的配置和环境的 lxc 容器模板,并永远完成它。
好的,我已经成功地组合了一个配置来解决所有问题,包括 Windows 下的可发现性。
Windows 可发现性的技巧是让 NetBIOS 名称与主机名匹配,并且长度不超过 15 个字符。
/etc/samba/smb.conf:
[global]
# Identification
netbios name = same-as-hostnanme
workgroup = WORKGROUP
server string = Samba Server Version %v
# Network
name resolve order = bcast host lmhosts wins
# Protocol
server role = standalone server
disable netbios = no
wins support = yes
dns proxy = yes
domain master = yes
local master = yes
preferred master = yes
os level = 31
# Security
security = user
map to guest = Bad User
guest ok = yes
guest only = yes
guest account = nobody
# Needed by some Windows installs
server signing = auto
# Printing
load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes
# Files
directory mask = 0755
force create mode = 0644
force directory mode = 0755
case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes
# Performance
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
read raw = yes
write raw = yes
server signing = no
strict locking = no
min receivefile size = 16384
use sendfile = Yes
aio read size = 16384
aio write size = 16384
# Logging
syslog = 0
max log size = 100
Run Code Online (Sandbox Code Playgroud)
/etc/avahi/services/samba.service:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
</service-group>
Run Code Online (Sandbox Code Playgroud)
此 avahi 配置提供闪电般的快速访问和吞吐量,并使所有支持 Bonjour 的系统(Mac 和 Linux)立即发现该服务。
| 归档时间: |
|
| 查看次数: |
8413 次 |
| 最近记录: |