samba服务配置

samba是一个实现不一样操做系统之间文件共享和打印机共享的一种SMB协议的免费软件。linux

 

 

 

samba软件结构:ios

 

/etc/samba/smb.conf                   #samba服务的主要配置文件数据库

 

/etc/samba/lmhosts                      #samba服务的域名设定,主要设置IP地址对应的域名,相似linux系统的/etc/hostsvim

 

/etc/samba/smbusers                   #samba服务设置samba虚拟用户的配置文件安全

 

/var/log/samba                         #samab服务存放日志文件服务器

 

/var/lib/samba/private/{passdb.tdb,secrets.tdb}      #存放samba的用户帐号和密码数据库文档dom

 

 

 

Samba在线安装性能

 

[root@VMredhat6 ~]# yum -y install samba*                    #yum在线安装samba测试

 

[root@VMredhat6 ~]# rpm -qa | grep samba                    #检查samba安装状况操作系统

samba-client-3.6.23-41.el6.x86_64

samba-winbind-clients-3.6.23-41.el6.x86_64

samba-3.6.23-41.el6.x86_64

samba4-libs-4.0.0-58.el6.rc4.x86_64

samba-common-3.6.23-41.el6.x86_64

samba-winbind-3.6.23-41.el6.x86_64

 

 

标注:Samab服务开启以前须要关闭两个服务,iptables防火墙(若是你熟悉能够不关闭,放行smb的端口便可,SAMBA服务TCP端口139,445  UDP端口 137,138);selinux服务。

 

关闭防火墙:

 

[root@VMredhat6 ~]# /etc/init.d/iptables stop                         #关闭防火墙

[root@VMredhat6 ~]# chkconfig --list iptables                       #查看防火墙启动状态

[root@VMredhat6 ~]# chkconfig iptables off                          #关闭防火墙开机自动启动

 

关闭selinux:

 

[root@VMredhat6 ~]# vim /etc/selinux/config                      #永久关闭selinux

set SELINUX=disabled       #SELINUX=enforcing改成SELINUX=disabled

 

 

标注:smb.conf配置文件分为两大类,一个全局设置参数,一个是文件共享设置参数:

 

#全局设置参数

 

[global]

 

config file = /etc/samba/smb.conf.%U                                                           #可让你使用另外一个配置文件来覆盖缺省的配置文件。若是文件 不存在,则该项无效。

 

workgroup = WORKGROUP                                   #工做组名称

 

server string = Samba Server Version %v                   #主机的简易说明

 

netbios name = MYSERVER                                        #主机的netBIOS名称,若是不填写则默认服务器DNS的一部分,workgroup和netbios name名字不要设置成同样

 

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24                                  #设置samba服务器监听网卡,能够写网卡名称或IP地址,默认注释

 

hosts allow = 127. 192.168.12. 192.168.13.                                                  #设置容许链接到samba服务器的客户端,默认注释

 

hosts deny =192.168.12.0/255.255.255.0                                                     #设置不容许链接到samba服务器的客户端,默认注释

 

log level =1                                                                                                    #日志文件安全级别,0~10级别,默认0

 

log file = /var/log/samba/%m                       #产生日志文件的命名,默认以访问者IP地址命名

 

max log size = 50                            #日志文件最大容量50,默认50,单位为KB,0表示不限制

 

 

security = share                            #设置用户访问samba服务器的验证方式 ,一共四种验证方式。

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                         #定义用户后台类型

一、smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码

二、tdbsam:建立数据库文件并使用pdbedit创建SMB独立用户,smbpasswd –a username创建samba用户并设置密码,不过创建samba用户

必须先创建系统用户,也可使用pdbedit命令来创建samba用户:

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用户的帐号。

三、ldapsam:基于LDAP服务进行帐户验证

 

username map = /etc/samba/smbusers   #配合/etc/samba/smbusers文件设置虚拟用户

 

 

 

#共享文件设置参数

 

[share]                                          #自定义共享名称

 

comment =  This is share software                              #共享描述

 

path  =  /home/testfile                                                            #共享目录路径

 

browseable  =  yes/no                                                       #设置共享是否可浏览,若是no就表示隐藏,须要经过IP+共享名称进行访问

 

writable  =  yes/no                               #设置共享是否具备可写权限

 

read only  =  yes/no                              #设置共享是否具备只读权限

 

admin users  =  root                             #设置共享的管理员,若是security =share 时,引项无效,多用户中间使用逗号隔开,例如admin users = root,user1,user2

 

valid users  =  username                              #设置容许访问共享的用户,例如valid users = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)

 

invalid users  =  username                              #设置不容许访问共享的用户

 

write list  =  username                               #设置在共享具备写入权限的用户,例如例如write list  = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)

 

public  =  yes/no                                  #设置共享是否容许guest帐户访问

 

guest  ok  =  yes/no                               #功能同public 同样

 

create mask = 0700                                          #建立的文件权限为700

 

directory mode = 0700                                       #建立的文件目录为 700

 

 

 

1、不须要帐号密码访问的共享(security  =  share )

 

[root@VMredhat6 samba]# /etc/init.d/smb  start                   #启动samba服务

[root@VMredhat6 samba]# ls -ld /home/smbuser/                  #查看共享文件权限

[root@VMredhat6 samba]# chmod 777 /home/smbuser/            #分配共享文件最大权限

[root@VMredhat6 samba]# testparm                                #检查smb.conf配置文件是否有语法错误

[root@VMredhat6 samba]# netstat -tlnp | grep mbd                  #查看samba端口,TCP端口139,445  UDP端口 137,138

 

[root@VMredhat6 samba]# vim /etc/samba/smb.conf               #设置smb.conf配置文件

[global]

workgroup = WORKGROUP                                   #设置主机工做组

server string = Samba Server Version %v                     #samba服务注释

 

log level = 1                                                   #设置日志文件安全级别为1

log file = /var/log/samba/%m                                  #设置日志文件名称,%m以IP地址为名称

max log size = 50                                              #设置日志文件最大容量50KB,0表示不限制

 

security = share                                                  #以share验证方式访问

passdb backend = tdbsam                                       #定义用户后台类型

 

load printers = no                                                 #关闭打印共享功能

cups options = raw                                               #打印机选项

 

 

[usershare]

comment  =  Home Directories                                  #共享文件描述

path  =  /home/shareuser                                       #共享路径

browseable  =  yes                                              #共享文件能够浏览

writable  =  yes                                                  #共享文件可写

; read only  =  yes                                               #共享文件可读,不能与writable共用

guest ok =  yes                                                  #容许guest用户访问

 

[root@VMredhat6 samba]# /etc/init.d/smb  restart                   #重启samba服务

 

 

测试:

Windows系统操做:

在win 7系统打开运行输入 \\192.168.10.150 直接访问,不须要输入任何用户和密码

 

 

 

在linux操做须要进行挂载:

[root@VMredhat6 ~]# yum -y install samba-client                  #在线安装samba-client才能使用smbclient命令

[root@VMredhat6 ~]# smbclient -L //192.168.10.150                  #查看samba服务器共享目录

[root@VMredhat6 ~]# mount -t cifs //192.168.10.150/usershare /mnt/share       #挂载

 

 

 

 

2、须要输入帐号和密码访问的共享(security  =  user)

 

 

标注:建立samba用户以前必须先建立系统用户,系统用户和samba用户名同样,但密码能够设置成不同

 

[root@VMredhat6 samba]# useradd test01                                   #建立系统用户test01

[root@VMredhat6 samba]# useradd test02                           #建立系统用户test02

[root@VMredhat6 samba]# passwd test01                            #设置系统用户test01密码

[root@VMredhat6 samba]# passwd test01                          #设置系统用户test02密码

[root@VMredhat6 samba]# smbpasswd -a test01                   #把系统用户test01添加为samba用户并设置samba用户登陆密码

[root@VMredhat6 samba]# smbpasswd -a test02                    #把系统用户test02添加为samba用户并设置samba用户登陆密码

[root@VMredhat6 samba]# pdbedit –L                               #查看samba用户

[root@VMredhat6 samba]# mkdir /home/{smbadmin01,smbuser01}          #home建立两个共享目录

[root@VMredhat6 samba]# chmod 777 /home/{smbadmin01,smbuser01}        #目录分配最高权限

 

[root@VMredhat6 ~]# vim /etc/samba/smb.conf                          #设置smb.conf配置文件

 

[global]

workgroup = WORKGROUP                 #设置主机工做组

server string = Samba Server Version %v      #samba服务注释

 

log level = 1                                                          #设置日志文件安全级别为1

log file = /var/log/samba/%m                                       #设置日志文件名称,%m以IP地址为名称

max log size = 50                                                    #设置日志文件最大容量50KB,0表示不限制

 

security = user                                                          #以user验证方式访问

passdb backend = tdbsam                                             #定义用户后台类型

 

load printers = no                                                   #关闭打印共享功能

cups options = raw                                                  #打印机选项

 

[usershare]

comment  =  Home Directories                                        #共享文件描述

path  =  /home/smbuser01                                           #共享路径

browseable  =  yes                                                   #共享文件能够浏览

read only  =  yes                                                     #共享文件可读,不能与writable共用

valid users  =  test01,test02                                          #设置容许访问共享用户

 

[adminshare]

comment  =  Home Directories                                        #共享文件描述

path  =  /home/smbadmin01                                            #共享路径

browseable  =  yes                                                     #共享文件能够浏览

writable  =  yes                                                         #共享文件可写

create  make  =  0664                                                #设置用户建立文件权限0664

directory  make  =  0775                                             #设置用户建立目录权限0775

write  list   =   test01                                                 #设置容许访问共享具备写入权限的用户

 

[root@VMredhat6 samba]# /etc/init.d/smb  restart                         #重启samba服务

 

 

测试:

Windows系统操做:

在win 7系统打开运行输入 \\192.168.10.150 直接访问,输入test01用户和密码

 

 

 

在linux操做须要进行挂载:

 

[root@VMredhat6 ~]# yum -y install samba-client                     #在线安装samba-client才能使用smbclient命令

[root@VMredhat6 ~]# smbclient -L //192.168.10.150                    #查看samba服务器共享目录

[root@VMredhat6 ~]# mount -t cifs //192.168.10.150/usershare /mnt/share         #挂载

 

 

 

 

3、特殊操做:(samba用户映射,又称做虚拟用户)

 

      上述操做是建立系统用户再分配对应的samab用户,经过samba用户就能知道你的系统用户,缺少必定的安全性。不过,

samba提供了一种方法,就是把samba用户映射成虚拟用户。好比linux系统建立了一个用户user,samba把user添加为samba用户,

samba再把user用户虚拟成user01,user02等用户,一个samba用户能够虚拟成一个或多个虚拟用户。这样就能够保证系统用户安全性。

 

 

操做跟上述操做同样,只是修改一些地方便可:

 

[root@VMredhat6 ~]# vim /etc/samba/smb.conf                     #设置smb.conf配置文件

 

security = user                                               #以user验证方式访问

passdb backend = tdbsam                                   #定义用户后台类型

username map = /etc/samba/smbusers                     #添加这行配置,开启samba虚拟用户配置功能

 

[root@VMredhat6 samba]# vim /etc/samba/smbusers                #添加samba虚拟用户

# Unix_name = SMB_name1 SMB_name2 ...

root = administrator admin

nobody = guest  pcguest  smbguest

test01 = user01  user02  user03

 

[root@VMredhat6 samba]# /etc/init.d/smb  restart                   #重启samba服务

 

 

 

测试:

Windows系统操做:

在win 7系统打开运行输入 \\192.168.10.150 直接访问,输入user01用户,密码是test01用户密码。

 

 

相关文章
相关标签/搜索