系统管理工程师笔记---小孩制作整理创建时间:2009-9-15 20:47:00
QQ:980617577
Linux Samba配置说明以及实验文档
Samba配置文件常用详解
Samba的主配置文件叫smb.conf,
可以用rpm –ql samba查看文件都安装到了那里咯!
默认主配置在/etc/samba/目录下。这个目录下还存放着我们稍后用密码访问时的口令文件。 smb.conf含有多个段,每个段由段名开始,直到下个段名。每个段名放在方括号中间。配置文件中一行一个段名和参数,段名和参数名不分大小写。
除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性。
Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。使用testparm –v命令可以详细的列出smb.conf支持的配置参数。
全局参数:
==================Global Settings =================== [global]
config file = /usr/local/samba/lib/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
workgroup = WORKGROUP 说明:设定 Samba Server 所要加入的工作组或者域。 printcap name = /etc/printcap
//此项是用来设置开机时自动加载的打印机配置文件名称和路径 load printers = yes
//表示是否容许打印机中的所有打印机,在开机时自动加载浏览列表,以支持客户端的浏览功能 printing = cups
//此项用来指定打印系统的类型 ; guest account = pcguest
//此项默认不使用,它是用来设置Guest帐号名 server string = Samba Server Version %v 说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
系统管理工程师笔记---小孩制作整理创建时间:2009-9-15 20:47:00
QQ:980617577
netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。 interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。 hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。 例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50 hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接 hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接 hosts allow=@xq
表示容许来自XQ网域的所有计算机连接 max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。 deadtime = 0
说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。 time server = yes/no
说明:time server用来设置让nmdb成为windows客户端的时间服务器。 log file = /var/log/samba/log.%m 说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。 max log size = 50
说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。 security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。 1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。 2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。 3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。 passdb backend = tdbsam 说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
系统管理工程师笔记---小孩制作整理创建时间:2009-9-15 20:47:00
QQ:980617577
用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。 pdbedit –a username:新建Samba账户。 pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。 pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。 pdbedit –c “[]” –u username:恢复该Samba用户的账号。
3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server” encrypt passwords = yes/no
说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。 ; password server =
//此项功能在默认的配置下不使用,而且只有在上个选项设置为“security=server”时才生效,它是用来指定密码服务的名称,所以要使用NETBIOS名称,也可以使用“password server=*”的方式来自动寻找可用的域控制器 ; password level = 8
//这个选项是为了避免SAMBA服务器和客户端之间容许密码大写位数不同而产生的错误
; username level = 8
//这个选项是为了避免SAMBA服务器和客户端之间容许帐号大写位数不同而产生的错误
encrypt passwords = yes
//此项表示是否指定用户密码以加密的形态发送到SAMBA服务器 smb passwd file = /etc/samba/smbpasswd //SAMBA服务器使用的密码文件路径
; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt //它用来指定包含所有受信任CA名称的文件 unix password sync = Yes
// 此项是用来把SAMBA密码文件中的加密内容修改时,可以使用此选项进行同步 passwd program = /usr/bin/passwd %u
//此项用来指定设置UNIX帐号密码的程序,其中%U表示用户名称 passwd chat = *New*password* %n\\n *Retype*new*password* %n\\n *passwd:*all*authentication*tokens*updated*successfully*
//此项用来设置用户在进行Linux密码转换成SAMBA服务器密码时,屏幕出现的指示字符串,以及与用户产生交互窗口 pam password change = yes
//此项表示可以使用PAM来修改SMB客户端的密码,而不使用“passwd program”选项中指定的程序
系统管理工程师笔记---小孩制作整理创建时间:2009-9-15 20:47:00
QQ:980617577
; username map = /etc/samba/smbusers
//此选项指定一个配置文件,在此文件中包含客户端与服务端上的用户对应数据 ; include = /etc/samba/smb.conf.%m
//此选项容许SAMBA服务器使用其他的配置文件 ; obey pam restrictions = yes
//此项可以决定是否采用PAM帐号及会话管理的指令
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
//这个选项在编写TCP/IP程序时相当重要,因为可以借此调整SAMBA服务器运行时的效率
; interfaces = 192.168.12.2/24 192.168.13.2/24
//此项可以使SAMBA服务器监视多个往来接口,如果服务器上有多张网卡应该配置此项 在配置时可以写成: interfaces =eth0
interfaces =172.17.4.150 ; remote announce = 192.168.1.255 192.168.2.44
//此项容许NMBD定期公布SAMBA服务器的IP地址和群组名称到远程的网络或主机 #========== Share Definitions ===============
[homes] //用户个日的主目录设置内容 comment = Home Directories //主目录注释
browseable = no //是否容许其他用户浏览个人主目录 writable = yes //是否容许写入个人目录
valid users = %S //容许登陆的用户,%S表示当前登陆的用户 create mode = 0664 //新建文件的默认权限 directory mode = 0775 //新建目录的默认权限 ; map to guest = bad user //当用户输入不正确的帐号和密码时,可以利用“map to guest”选项来设置处理的方式,但是必须把前面的“security”选项设为“user”“server”“domain” 设置项 说明 user 拒绝访问 server
如果帐号正确,但密码错误,容许以Guest登陆 domain
如果帐号和密码都错误,还是容许以Guest登陆
; [netlogon] //登陆网域时的“netlogon”目录设置内容 ; comment = Network Logon Service //主目录注释 ; path = /usr/local/samba/lib/netlogon //实际访问资源的本机路径 ; guest ok = yes //连接时是否需要密码 ; writable = no //是否容许写入此目录
; share modes = no //是否容许目录中的文件在不同的用户之间共享 ;[Profiles] //用户配置文件目录设置内容
系统管理工程师笔记---小孩制作整理创建时间:2009-9-15 20:47:00
QQ:980617577
; path = /usr/local/samba/profiles //实际访问资源的本机路径 ; browseable = no //是否容许浏览此主目录 ; guest ok = yes //连接时是否需要密码 [printers] //设置打印机环境内容 comment = All Printers //打印机注解 path = /var/spool/samba //打印队列路径
public=yes //是否容许Guest打印
browseable = no //是否容许浏览打印机内的暂时存盘内容 guest ok = no //连接时是否不需要密码 writable = no //是否容许写入此目录
wins support = yes //设置将samba服务器作为wins服务器,默认不使用 //wins服务器由微软开发,功能是将NetBIOS名称转换为对应的ip地址 username map = /etc/samba/smbusers //去掉前面的;号,用于用户映射
然后编辑文件/etc/samba/smbusers,将需要映射的用户添加进去,格式为 单独的linux用户 = 要映射的windows用户列表
例: test = alarm back //test用户对应windows下的alarm和back两个用户 encrypt password = yes 或 no //yes表示采用加密方式发送密码,no为不采用
若此项为no,则windows系统必须响应的修改注册表项,注册表文件存放在/usr/share/doc/samba-2.2.7a/docs/Registry下 [homes] //设置共享目录
comment = Home Directories //简要说明
browseable = no //是否允许用户浏览所有人的主目录 writable = yes //是否允许用户写入自己的主目录 [share] //设置一个共享目录
comment = Samba's share Directory //简要说明 read list = test //只读用户或组 write list = @share //可写用户或组
path = /home/share //共享文件夹目录路径 //设置共享目录后需要做以下操作
1.root登录,使用命令groupadd share 建立share组,并用usermod -g share abc命令将abc用户添加到share组
2.mkdir /home/share在/home下建立目录share
3.chown :share /home/share设置share目录所属组为share组,chmod 777 /home/share 设置share组对该目录有最大权限 :wq //保存退出
#testparm //测试smb.conf文件是否有语法错误 #su - //切换root用户
#service smb start restart stop //启动 重启 停止samba服务器 #ntsysv //设置samba服务器开机启动
对于此选项要很小心-它可能带来一些想不到的事情。 ; case sensitive = no [homes]
comment = Home Directories browseable = no