一、 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 = 为什么不起作用,如何让映射账户也有浏览权限等。