smb.conf文件解析

本来说自己翻译一下smb.conf中的内容的,但是翻译了一半发现,  pk984813比我翻译的要好的多,遂决定转载了^_^!

Samba的主配置文件。但所包含的内容并不是很全,详见man smb.conf
所有以;或#开头的行为注释行,将被忽略掉。在这个例子中我们使用;表示可以由你来修改或设置的部分,而#则表示真正意义上的注释。
注意:不论你何时何地修改了这个文件,你都应运行一下命令“testparm“来测试你是否犯了一些基本语法的错误。
1、全局设置
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = MYGROUP
下面的这句话是后加的,加入的意义为:使WIN用户可以看到主机的名字,但我将此行注释掉后,没看到什么影响。
netbios name = express
下面设置的是服务器的字符串,相当于NT中的计算机说明部分
server string = Samba Server
下面的选项对于安全性很重要。他允许你对是否可以进行本地网络连接的机器进行了限制。
hosts allow = 192.168.1.50 192.168.1.43 192.168.1.44 192.168.1.45 192.168.1.46 192.168.1.47 192.168.1.48 192.168.1.49
如果想要自动共享打印机而不是个别地进行单独设置,使用下面的选项:
printcap name = /etc/printcap
load printers = yes
除非你是非标准的,否则下面的选项对于你说清楚打印系统的类型并不是很必要。当前支持的打印系统主要有以下几类:
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
printing = cups
如果想要一个guest账号的话就不用注释下面的行。你必须把这个加入到/etc/passwd中,否则用户“nobody“会被使用。
; guest account = pcguest
下面的选项告诉samba对不同的机器连接使用不同的日志文件。小心如果你允许访问的机器太多的话,文件可能极多哟!!!:)
log file = /var/log/samba/%m.log
设置log文件的大小(KB)(# Put a capping on the size of the log files (in Kb).)
max log size = 0
安全格式。大多数用户使用用户级安全。详见security_level.txt。
security = share
使用密码服务选项,仅用于security = server模式
参数列表可以包括:
# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# 或自动查找域控制器
# password server = *
; password server = <NT-Server-Name>
对于所有的上面和下面的组成部分的_n_characters密码所允许的匹配级别
; password level = 8
; username level = 8
你可能想使用密码编码。见在samba文档中的ENCRYPTION.txt, Win95.txt和WinNT.txt。
除非你已经仔细的读过了那些文档,否则不要激活下面的选项:
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
当samba被建成为支持SSL的模式时,下面需要从大量的假的错误中保持smbclient。(原文如下:
# The following is needed to keep smbclient from spouting spurious errors
# when Samba is built with support for SSL.
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt
下面的选项需要允许从windows对linux系统的密码进行修改。
# 注意:上面带有'encrypt passwords' 和'smb passwd file'选项使用这些。
# 另: 如果仅是允许工作站改变加密的SMB密码那么你不需要这些。它们允许Unix密码与SMB密码保持同步。
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n/n *Retype*new*password* %n/n *passwd:*all*authentication*tokens*updated*successfully*

你可以使用PAM的密码改变控制标记。如果激活的活,当一个SMB客户端请求代替了在密码程序列表时,PAM将用于密码改变。对于大多数的设置,不改变密码字符参数而激活这个也是可能的。
pam password change = yes
Unix用户可能映射不同的SMB用户名。
username map = /etc/samba/smbusers
在每一台机器的基础上,使用下面的行可以使你定制你的配置。%m以连接机器的netbios名代替。
; include = /etc/samba/smb.conf.%m
这个参数控制samba是否服从于PAM账号和对话管理指示。默认情况下是使用PAM仅清除文本证明且忽略任何的账号或对话管理。注意:当加密密码=yes时,samba总是忽略PAM的证明。
obey pam restrictions = yes
很多人都会发现这个选项优化了性能。详见speed.txt和帮助手册页。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
配置samba使用多重接口。
如果你有多个网络接口的话,必须把他们在下面列出来。详见man。
; interfaces = 192.168.12.2/24 192.168.13.2/24
配置请求播出同步到远程浏览器,或从一个主机同步浏览器列表或从/到整个子网(如下)。
; remote browse sync = 192.168.3.25 192.168.5.255
使主机将自己广播到本地的子网。
; remote announce = 192.168.1.255 192.168.2.44
浏览器控件选项:
如果你不想让你的samba在你的网络中变成一个主浏览器,那么设置local master为no,否则将采用正常的规则。
; local master = no
os level决定在主浏览器的中被提取的优先级。默认值是很合理的。
; os level = 33
域master指定samba是域主浏览器。这允许samba在子网之间比较浏览列表。如果你已经有了一个Win NT的主域控制器的话,就不要设置这个选项。
; domain master = yes
首选master使samba在启动时拒绝一个本地浏览器的选出,且给他一些小的较高的机会让其来选出。
; preferred master = yes
如果你要samba成为Win95工作站的域登录服务器的话则激活它。
; domain logons = yes
如果你激活了domain logons,那么你可以让每一台机器或每一个用户登录角本运行一个指定的登录批处理文件。原文如下:if you enable domain logons then you may want a per-machine or per user logon script run a specific logon batch file per workstation (machine)
; logon script = %m.bat
每一个用户名都运行一个指定的登录批处理文件
; logon script = %U.bat
# 存储动态的profile(仅针对95与NT)
# %L 代表netbios name, %U 是一个用户名
# 不能注释掉下面的[Profiles]共享。
; logon path = /%L/Profiles/%U
支持WINS部分:告诉samba组件的NMBD去激活WINS服务。
; wins support = yes
WINS服务器-告诉samba组件的NMBD成为一个WINS客户端。
注意:samba即可以是一个WINS服务器,也可以是一个客户端,或都不是。
; wins server = w.x.y.z
WINS 代理-原文如下,没法翻译(Tells Samba to answer name resolution queries on behalf of a non WINS capable client,),执行这件事必须要求在网络中至少有一个Wins服务器。默认情况下是NO。
; wins proxy = yes
# DNS Proxy – 告诉samba是否经过DNS的nslookup试着去解析NETBIOS名。1.9.17的内置默认值是yes,目前已经改为1.9.18的no。
dns proxy = no
实例保存可以很简洁-系统默认值是_no_
注意:可以在每一个共享基础上设置
; preserve case = no
; short preserve case = no
默认实例是对于所有的DOS文件都大写
; default case = lower
对于此选项要很小心-它可能带来一些想不到的事情。
; case sensitive = no
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
如果不想要samba不承认已经映射为guest的用户,可用如下设置
; map to guest = bad user
如果想创建netlogon目录给域登录,不要注释下面的内容。
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
想提供一个指定的不固定的共享profile那么就不要注释下面的内容,默认使用用户主目录。
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes
注意:如果你有一个BSD风格的打印系统,则没有必须单独的特别指定每一个打印机。
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
设置public=yes表示允许’guest account’打印
guest ok = no
writable = no
printable = yes
下面的内容对人们共享文件是有用的。
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
公用的可访问的目录,除了在staff组中的成员外,对其它人为只读
;[public]
; comment = Public Stuff
; path = /home/nw
; public = yes
; writable = yes
; printable = no
; write list = @staff
私有打印机,仅仅fred本人可用。打印池中的数据将被放到fred的主目录中。注意:fred用户无论在什么地方都必须对打印池有写访问的权限。
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /home/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes
私有目录,仅能对fred开放。注意fred对这个目录需要写访问的权限。
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
允许你制作配置文件去引入的连接到这里的每一台机器都有不同的目录的服务。
使用%U选去配置用户名,%m代替连接到的机器名。
;[pchome]
; comment = PC Directories
; path = /usr/local/pc/%m
; public = no
; writable = yes
公共可访问的目录,对所有的用户都可读/写。注意:在这个目录中的所有由用户创建的文件都会被标识成默认用户所有。所以有访问仅限的用户可以删除别的用户的文件。很明显这个目录必须是可以被默认用户写的。另一个用户当然可以指定,这样所有的文件都将被那个用户所替代。
[public]
path = /tmp/aaaa
public = yes
guest ok = yes
writable = yes
printable = no
下面的两个例子是怎样共享一个目录给两个用户,在这个共享目录中他们可以放置文件且分别属于各自所有。在这个设置中,目录将可以被两个用户同时使用且在其上有粘滞位保护。很明显,可以扩展为多个用户的情况。
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
以下是个人实际的设置
[sharedir]
path = /home/nw
public = yes
guest ok = yes
writable = yes
<think>好的,我现在需要帮助用户了解smb.conf文件中各种参数的功能。用户之前已经询问过Samba服务器的功能,现在可能正在尝试配置自己的Samba服务器,遇到了具体的配置问题。他们可能对配置文件中的参数不太熟悉,需要详细的解释来正确设置。 首先,我要确定用户的使用场景。用户可能是在搭建家庭网络共享,或者是在企业环境中配置文件服务器。无论是哪种情况,理解smb.conf的参数对他们来说都很重要。用户可能已经查阅过一些资料,但需要更系统、结构化的解释,以便更好地理解和应用这些参数。 接下来,我需要考虑用户可能缺乏的知识点。他们可能不熟悉Samba的配置结构,比如全局设置和共享定义的区分,或者对某些参数的具体作用不太清楚,比如security mode或valid users。此外,用户可能对权限管理、用户验证机制等概念需要进一步的解释。 用户的需求不仅仅是列出参数,而是希望理解每个参数的作用以及如何合理配置。因此,我应该将参数分类,比如全局参数和共享参数,再进一步细分功能模块,如网络设置、认证安全、共享定义等。这样用户可以根据自己的需求快速找到相关参数。 同时,用户可能对某些高级功能感兴趣,比如日志记录、性能调优或与Active Directory的集成。需要确保覆盖这些方面,但也要保持解释的简洁性,避免信息过载。提供示例配置片段会帮助用户更直观地理解参数的应用场景。 此外,用户可能遇到常见问题,比如权限配置错误导致访问被拒绝,或者名称解析问题导致无法找到共享。在解释参数时,可以附带一些常见问题及解决方法,但根据用户当前的问题,可能不需要深入这部分,除非用户明确提到。 最后,要确保语言清晰,避免技术术语的过度使用,必要时用比喻或类比帮助理解。比如,解释browseable参数时,可以类比为文件夹是否在“网络邻居”中可见。这样用户即使没有深厚的技术背景,也能理解参数的作用。 总结来说,我需要提供一个结构清晰、分类明确的smb.conf参数指南,涵盖常用参数及其功能,并结合实际例子,帮助用户有效配置Samba服务器。同时,注意用户可能的实际应用场景,提供针对性的建议,比如家庭网络和企业环境的不同配置需求。</think>以下是`smb.conf`配置文件关键参数的功能分类解析,按功能模块组织: --- ### 一、**全局参数([global])** #### 1. **网络基础配置** - `workgroup = WORKGROUP` **功能**:定义Samba所属的工作组(与Windows网络中的“工作组”名称一致)。 - `server string = %h Samba Server` **功能**:设置服务器描述(在客户端“网络”中显示的名称)。 - `interfaces = 192.168.1.0/24 eth0` **功能**:指定监听的网络接口或IP范围(多网卡服务器需明确绑定)。 - `hosts allow = 192.168.1. 127.` **功能**:IP白名单(允许访问的客户端IP段)。 #### 2. **安全与认证** - `security = user` **功能**:认证模式(可选`user`、`ads`、`domain`等,控制用户验证方式)。 **示例**:`ads`模式用于加入Active Directory域。 - `passdb backend = tdbsam` **功能**:用户密码存储格式(`tdbsam`为本地数据库,`ldapsam`用于LDAP集成)。 - `encrypt passwords = yes` **功能**:启用密码加密(必须开启以兼容现代Windows客户端)。 #### 3. **日志与调试** - `log file = /var/log/samba/log.%m` **功能**:日志文件路径(`%m`表示按客户端主机名分割日志)。 - `max log size = 50` **功能**:单个日志文件最大大小(单位:MB),超出后自动轮转。 #### 4. **性能调优** - `socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192` **功能**:网络套接字优化参数(提升传输效率)。 - `deadtime = 15` **功能**:空闲连接超时时间(单位:分钟),释放资源。 --- ### 二、**共享定义参数([共享名])** #### 1. **路径与可见性** - `path = /data/shared` **功能**:共享目录的本地绝对路径(必须存在且有权限)。 - `browseable = yes` **功能**:是否在网络中显示该共享(隐藏共享设为`no`)。 #### 2. **访问控制** - `valid users = alice, @smbgroup` **功能**:允许访问的用户或组(`@`表示组名)。 - `read only = no` **功能**:是否允许写入(`no`表示可读写)。 - `write list = bob` **功能**:指定拥有写权限的用户/组(优先级高于`read only`)。 #### 3. **权限继承** - `create mask = 0644` **功能**:新建文件的默认权限(八进制格式,如`0644`表示`-rw-r--r--`)。 - `directory mask = 0755` **功能**:新建目录的默认权限(如`0755`表示`drwxr-xr-x`)。 #### 4. **高级功能** - `veto files = /*.tmp/*.bak/` **功能**:禁止客户端访问特定模式的文件(支持通配符)。 - `hide dot files = yes` **功能**:隐藏UNIX系统中以`.`开头的文件(如`.bashrc`)。 --- ### 三、**特殊场景参数** #### 1. **打印机共享** - `printable = yes` **功能**:启用打印机共享(需配合`cups`服务)。 - `printer admin = @admins` **功能**:指定打印机管理员组。 #### 2. **域控制器配置** - `domain master = yes` **功能**:声明为域主浏览器(用于跨子网网络)。 - `domain logons = yes` **功能**:允许Windows客户端通过Samba域登录。 #### 3. **时间同步** - `time server = yes` **功能**:提供NTP时间服务(解决跨系统时间不一致问题)。 --- ### 四、**配置文件示例** ```conf [global] workgroup = MYCOMPANY server string = File Server security = user log file = /var/log/samba/log.%m max log size = 50 [Sales] path = /srv/samba/sales valid users = @sales_team read only = No create mask = 0660 directory mask = 0770 ``` --- ### 关键调试命令 - `testparm`:验证配置文件语法 - `smbstatus`:查看当前连接的客户端和打开的文件 掌握这些参数后,可通过组合配置实现**精细化的共享权限管理**和**跨平台兼容性优化**。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值