Samba服务的配置
一、 Samba服务的配置
配置文件简介
文件用#和;进行注释,并且有大部分说明,方便用户配置,有一些配置模版参考。
Global settings #全局设定 [global] Network Related Options #网络相关配置 Logging Options #登陆日志文件大小配置 Standalone Server Options #配置共享模式和密码认证模式 Domain Members Options #域成员认证相关配置 Domain Controller Options #域控制器相关选项 Browser Control Options #浏览控制,多个samba服务时可能会用到 Name Resolution #wins解析和DNS代理相关选项 Printing Options #打印相关选项 Filesystem Options #扩展的文件属性配置 Share Definitions #共享设置 [homes] #家目录共享 [printers] #打印共享
这里主要学习常用的配置选项
#======================= Global Settings============ [global] # ----------------------- Network Related Options------------ workgroup = MYGROUP #工作组名称 server string = Samba Server Version %v #服务器描述 #netbios名称 ; netbios name = MYSERVER #设置允许侦听的本地网络接口 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 #指定允许连接samba服务器的网段和IP ; hosts allow = 127. 192.168.12. 192.168.13. #禁止对应网段的访问,这些也可以单独设置在共享中 hosts deny = 192.168.0. # --------------------------- Logging Options --------------- #日志存放路径 log file = /var/log/samba/log.%m #每个日志文件的最大容量 max log size = 50 # ----------------------- Standalone ServerOptions----------------- #安全级别分五种: #share: 共享级别,服务器不对客户机进行身份验证,不推荐使用。 #user: 用户级别,服务器对客户机进行身份验证,默认使用这个。 #server: 服务器级别,Samba服务器必须通过另一台服务器对客户机进行身份验证。如果设置为此值,需另加一行:password Server = IP才行。 #domain: 域级别,Samba服务器要通过windows server的域控制器对客户机进行身份验证,需另加一行:password Server = IP才行。 security = user #指定Samba服务器对用户帐户和密码的管理方式。一般默认即可,不推荐使用smbpasswd文件保存密码。 passdb backend = tdbsam #============================ Share Definitions=================== #这里定义的是家目录的共享,共享是的文件夹名称为用户名 [homes] #注释信息 comment = Home Directories #文件夹是否可以被其它用户浏览 browseable = no #用户是否可以写入 writable = yes #设置允许访问的用户 ; valid users = %S #允许访问的域用户,%S是一个samba变量,代表当前服务器名 #%u代表当前服务器的用户 ; valid users = MYDOMAIN\%S #打印共享 [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes #常用选项 comment = 备注信息 path = 绝对路径 public = yes/on 是否允许匿名访问 valid users = 用户名/@用户组 设置允许访问的用户或用户组,默认为yes。 readonly = yes/on 是否为只读 writable = yes/on 是否允许读写 write list = 用户/@用户组 允许读写的用户名单 guest ok = yes/on 是否允许匿名访问 guest only = 只允许匿名访问 creat mask = 权限掩码 directory mask = 目录掩码 常见通配符 %S = 当前服务名(如果有的话) %P = 当前服务的根目录(如果有的话) %u = 当前服务的用户名(如果有的话) %g = 当前用户说在的主工作组 %U = 当前对话的用户名 %G = 当前对话的用户的主工作组 %H = 当前服务的用户的Home目录 %v = Samba服务的版本号。 %h = 运行Samba服务机器的主机名 %m = 客户机的NETBIOS名称 %L = 服务器的NETBIOS名称 %M = 客户机的主机名 %N = NIS服务器名 %p = NIS服务的Home目录 %R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1) %d = 当前服务进程的ID %a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95) %I = 客户机的IP %T = 当前日期和时间
二、 Samba服务实验
实验一
某公司需要添加samba服务器作为文件服务器,工作组为workgroup,发布共享目录/share,共享名为public,这个目录允许所有员工访问。
#在根目录下建立date目录,共享文件尽量不要直接放在再根目录下 [root@RHEL1 /]# mkdir /date [root@RHEL1 /]# cd /date/ [root@RHEL1 date]# mkdir share [root@RHEL1 date]# ll total 4 drwxr-xr-x. 2 root root 4096 Sep 23 16:28 share #因为所有人可以访问,将文件夹所属用户改为匿名用户nobody, [root@RHEL1 date]# chown nobody:nobody share/ [root@RHEL1 date]# ll total 4 drwxr-xr-x. 2 nobody nobody 4096 Sep 23 16:28 share 【global】 改为share模式 security = share workgroup = Workgroup #============================ Share Definitions ============================== #在这里定义一个要求的共享 [public] comment = share date public = yes path = /date/share guest only = yes printers = no #注释掉这些默认配置先 ;[homes] ; comment = Home Directories ; browseable = no ; writable = yes ; valid users = %S ; valid users = MYDOMAIN\%S ;[printers] ; comment = All Printers ; path = /var/spool/samba ; browseable = no ; guest ok = no ; writable = no ; printable = yes #然后保存退出,重启服务,让配置生效。 [root@RHEL1 date]# service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ] #检查一下配置文件 [root@RHEL1 date]# testparm /etc/samba/smb.conf Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[public]" Unknown parameter encountered: "printers" Ignoring unknown parameter "printers" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 idmap config * : backend = tdb [public] comment = share date path = /date/share guest only = Yes guest ok = Yes #关于selinux,如果你关闭了selinux可以忽略这里,或者你使用setenforce 0将selinux暂时设置为Permissive。 #在配置文件的说明中也有关于SELINUX NOTES:的说明,可以参考一下 [root@RHEL1 date]# ll -dZ share/ drwxr-xr-x. nobody nobody unconfined_u:object_r:default_t:s0 share/ [root@RHEL1 date]# chcon -t samba_share_t share/ [root@RHEL1 date]# ll -dZ share/ drwxr-xr-x. nobody nobody unconfined_u:object_r:samba_share_t:s0 share/ #建立两个测试文件 [root@RHEL1 share]# mkdir test [root@RHEL1 share]# vim test.txt [root@RHEL1 share]# ls test test.txt [root@RHEL1 share]# cat test.txt This is a samba server security = share #然后再server2003上进行测试
实验二
1. 公共目录/data/share,销售部目录/data/sales,技术部/data/tech
2. 企业需求
总经理:master,销售部:经理mike,员工sky、jane,技术部:经理:tom,员工:sunny、bill,使用samba搭建一个公共目录,允许所有的人访问,权限为只读,为各部门搭建自己独立的目录,且本部门可见,总经理具有浏览、修改所有文件的权限(公共目录除外)。所用的用户都不可登陆系统,只允许公司内部网络访问samba服务器(内网段为192.168.10.0/24)。
创建对立的文件夹
[root@RHEL1 ~]# mkdir /data/ [root@RHEL1 ~]# cd /data/ [root@RHEL1 data]# mkdir share [root@RHEL1 data]# mkdir sales [root@RHEL1 data]# mkdir tech
一、添加对应的用户和组及密码,密码均为123456(仅供实验中使用)
[root@RHEL1 data]# groupadd sales [root@RHEL1 data]# groupadd tech [root@RHEL1 data]# useradd master [root@RHEL1 data]# useradd -s /sbin/nologin -g sales mike [root@RHEL1 data]# useradd -s /sbin/nologin -g sales sky [root@RHEL1 data]# useradd -s /sbin/nologin -g sales jane [root@RHEL1 data]# useradd -s /sbin/nologin -g tech tom [root@RHEL1 data]# useradd -s /sbin/nologin -g tech sunny [root@RHEL1 data]# useradd -s /sbin/nologin -g tech bill [root@RHEL1 samba]# smbpasswd -a master New SMB password: Retype new SMB password: Added user master. . . . . [root@RHEL1 samba]# smbpasswd -a bill New SMB password: Retype new SMB password: Added user bill.
二、修改主配置文件和复制配置文件
#【global】主要修改部分 hosts deny = all hosts allow = 127. 192.168.10. config file = /etc/samba/smb.conf.%U #调用当用户的配置文件,这里的配置语句,只需要主配置文件有即可 config file = /etc/samba/smb.conf.%G #调用当前用户的主用户组配置文件 security = user #【share】主配置文件中 [public] comment = share data path = /data/share read only = yes public = yes [sales] comment = sales data path = /data/sales browseable = no read only = yes valid users = @sales,master [tech] comment = tech data path = /data/tech browseable = no valid users = @tech,master read only = yes
三、修改复制对应组和用户的配置文件复制文件
[root@RHEL1 samba]# cp smb.conf smb.conf.master [root@RHEL1 samba]#cp smb.conf smb.conf.sales [root@RHEL1 samba]#cp smb.conf smb.conf.tech
主要修改选项
#Smb.conf.sales [sales] comment = sales data path = /data/sales browseable = yes #自己的组内成员可以浏览 read only = yes valid users = @sales,master #smb.conf.tech [tech] comment = tech data path = /data/tech browseable = yes #同上 valid users = @tech,master read only = yes #smb.conf.master [sales] comment = sales data path = /data/sales browseable = yes read only = yes valid users = @sales,master [tech] comment = tech data path = /data/tech browseable = yes valid users = @tech,master read only = yes
四、保存配置重启samba服务
[root@RHEL1 samba]# service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ]
Mike是sales组用户
公共目录和本组目录可见
可读不可写
Tom是tech用户组成员
公共目录和本组目录可见
可读不可写
Master用户
所有目录可见
具有读写权限
公共目录不可写
三、 Samba服务排错
四、 总结
这里只涉及一些初级的东西,没有很复杂的配置,都是简单的一些应用,还有一些关于域配置的一些高级配置,还没有涉及,有待
以后深入学习。还有一些问题没有解决,例如include = 为什么不起作用,如何让映射账户也有浏览权限等。