Linux系统下Samba Server的配置文件解析

;阅读提示:在Linux下可以通过Samba客户端访问局域网内的Windows主机 , 也可以通过Samba服务器给Windows主机提供文件、打印机等服务 。Samba 使用/etc/samba/smb.conf 作为他的的主配置文件 , 直接修改并不直接生效 , 直到你在使用了#service sma restart 命令重启Samba服务之后才会生效 。Samba 使用/etc/samba/smb.conf 作为他的的主配置文件 , 直接修改并不直接生效 , 直到你在使用了 #service sma restart 命令重启Samba服务之后才会生效 。下面是smb.conf 文件的几个有用参数: workgroup = WORKGROUP-NAME ##############设置加入工作组名称 server string = BRIEF COMMENT ABOUT SERVER ##############此选项是可选的 , 主要作用是Samba服务Windows系统注释 。Host allow = 192.168.1. 192.168.2. 127. ##############此项对安全性非常重要.它严格限制了可访问Samba 的范围.默认是允许所有IP访问.. Printcap name = /etc/printcap ############设置打印机配置文件路径 Load printers = yes #########是否将打印机共享 Printing = cups #################打印机的类型.若用的打印机的是linux标准类型的则不要更改 Guest account = pcguest ##################如果想让用户`pcguest`以匿名用户身份登陆..;就去掉前面的注释 。并确保在/etc/passwd中有此用户 。这里的pcguest可以根据需要改成用户自己设置的本地用户 。Loginfile = /var/log/samba/%m.log ####################log会在此目录中为每个登陆用户(Samba用户)建立不同的日志文件 。Passwd Server = ##################密码验证服务器 。当用户从Windows通过Samba使用linux时 。全自动传送登陆windows时的用户名与密码给Samba 。然后Samba向windows server验证这两项信息是否正确 。若不正确 , 则会出现对话框要用户重新输入用户名与密码 。而这个密码服务器可以是NT SERVER(通常是主域控制器)或是另一个Samba Server 。因此若Security = share , 则要删除关于密码服务器的那一行 。Password Level -= 8 ##########################密码级别设置 Encrypt password = yes ##############用户密码要加密 。由于现在98/NT 皆用加密的密码 。因此要有这一项 , 当然也可以要求使用不加密的密码 。Smb Passwd file = /etc/samba/smbpasswd ############将密码验证服务器 , 设置为Samba server时 , 需要用此行来指定要验证的密码文件 , 这最重要的是密码文件设置的路径 。Uin passwd sync = yes Passwd program = /usr/bin/passwd \u ##############接下来的两行设置用来容许WIN密码改变后可更新linux系统的密码 , 确定`encrypt passwords`和`smb passwd file `项被启用 。Pam password change = yes ##############当用户要求更改密码时 , 使用PAM 。不用本地口令程序/user/bin/passwd Username map = /etc/samba/smbusers ##############在此文件中设置对应的用户名称 , 例如:root=administrator admin 等 , 如果每个windows用户在samba服务器中都有账号 , 则可以不设置 , Include = /etc/samba/smb.conf %m ##############此行允许用户自定义每台计算机的基本配置文件 , %M代表NETBIOS正在连接的计算机的称 。Obey pam restrictions = yew ##############当用户认证时 , 服从PAM的管理限制 。Socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ##############设置服务器和客户之间会话的Socket选项 , 此项设置将优化传输速度 。Interfaces = 192.168.12.2/24 192.168.13.2/24 ##############如果用多网络界面须在此列出 。Remote browse sync = 192.168.3.25 192.168.2.255 ##############本行和下一行是远程浏览设置 Remote announce = 192.168.1.255 192.168.2.44 # Browser Control Options 浏览控制选项 local master = no oslevel = 33 domain master = yes preferred master = yes domain logons = yes logon script = %M.bat ##############本行和下一行设置登陆脚本 logon script = \u.bat wins support = yes ##############wins server支持 wins server = w.x.y.z ##############wins 客户端设置 wins proxy = yes ##############wins proxy 设置 dns proxy = no ##############dns proxy设置,默认是不为客户端做DNS查询的 [homes] ##############用户访问自己目录的设置 browseable = no ##############用户私人目录,不需要给别人浏览 writeable = yes ##############用户写入自己目录的权限 [netlogon] guest ok = yes share modes = no [profiles] ##############默认profiles设置 [printer] ##############打印机设置 path = /var/spool/samba ##############打印机池(spool)用户须自创建目录 browseable = no ##############此行存放打印机的临时文件 set public = yes to allow user `guest prinr ##############如果设置,则允许guest用户使用打印机 printable = yes ##############用户是否可以打印 [temp] read only = no ##############是否只读或可写入 public = yes ##############是否共享 配置share级别的服务器 workgroup = linux hosts allow = 192.168.1. ##############如不想限制可注释掉 printcap = /etc/printcap load printers = yes printers = lprng guest account = abc ##############这需要指定一个用户帐号abc是samba中已存在的一个用户帐号 logfiles = /var/log/samba/%m.log maxlog size = 50 security = share socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF =8192 ##注:其它可能以按smb.conf默认设置 ##重启服务 测试samba命令testparm ====================================================================== 配置USER 级别的服务器 在share级的基础配置上修改: security = user 添加: guest account = zjz encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd ##############当配置文件/etc/smb.conf进行user级的设置后需要设置samba密码文件.建立smbpasswd帐号和口令 。使其与/etc/passwd的帐号和口令相同 。方法如下: 1:建立本地帐号 , 生成口令文件夹/etc/passwd,把/etc/passwd里的用户都加到/etc/samba/smppassword文件中 注意:该过程是先在本地建立帐号和密码 , 然后再把口令文件传给/etc/samba/smbpasswd , 顺序不能相反 。因本地帐号的口令和samba服务器中的帐号的口令是不相同的 。#adduser zjz #passwd zjz #cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd 这里的`/etc/samba/smbpasswd和smbpassspwd和smbpasswd file = /etc/samba/smbpasswd`r 路径要相同. 2:利用smbpasswd命令来为刚才建立的帐号设立samba server 口令 。注意:使用smbpasswd 命令修改用户口令时 。被修改的samba帐号的本地系统用户帐号须已经存在 。#smbpasswd zjz 重启samba服务 。USER级服务器配置完毕 。注意:如果不能实现WIN计算机和Samba资源互访 。可以在各自的主机中添加对方的主机名和IP地址 , 然后再测试:方法如下: 在linux系统/etc/hosts中添加:win-IP Win hostname (192.168.0.11 mywinpc) 在windows系统c:windowshosts中添加:win-IP Win—hostname 配置Server级服务器 server级的安全性比USER级更高 。在suer级配置的基础上修改: security = server 添加: password server = libtserver ##############密码服务器 , 这里是用win2k主域控制器libserver”来做密码服务器 。当然也可以用另一个samba server来做密码服务器 。注释掉smbpasswd file = /etc/samba/smbpasswd 设置完后 , 用testparm和smbclient命令进行调试 。这样当一台win NT/98计算机登陆libserver域服务器时 , 同时也登陆了Samba Server 上 。不过这时的用户帐号和密码在libserver和Samba server 上应该是相同的 。如果是已经加入的libserver主域控制器的计算机就可以输入用户帐号和密码来打开Samba Server 的共享文件 。其它计算机虽然也和samba server 在同一个网段上 , 但如果不用libtserver和samba server 共有的用户帐户和密码登陆 。就不能访问samba.

推荐阅读