samba服务配置(一)
samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件。
samba软件结构:
/etc/samba/smb.conf #samba服务的主要配置文件
/etc/samba/lmhosts #samba服务的域名设定,主要设置IP地址对应的域名,类似linux系统的/etc/hosts
/etc/samba/smbusers #samba服务设置samba虚拟用户的配置文件
/var/log/samba #samab服务存放日志文件
/var/lib/samba/private/{passdb.tdb,secrets.tdb} #存放samba的用户账号和密码数据库文档
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 #定义用户后台类型
1、smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码
2、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用户的账号。
3、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
一、不需要账号密码访问的共享(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 #挂载
二、需要输入账号和密码访问的共享(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 #挂载
三、特殊操作:(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用户密码。

samba服务配置(一)的更多相关文章
- samba服务配置(二)
需求: 某公司销售部门提出一个文件共享需求,要求部门共享目录有三个,第一个共享目录所有销售部门人员都具有可读可写权限: 第二个共享目录所有销售人员只读权限,经理级别的销售人员具有可读可写权限:第三个共 ...
- Centos7 -samba服务配置
Centos7 -samba服务配置 https://blog.csdn.net/zh515858237/article/details/76914905 http://blog.51cto.com/ ...
- Samba服务配置简明笔记
内部服务器之间拷贝数据,用root账号访问,没有做更复杂的设置. 1.用YUM安装samba服务器端及客户端: [root@tenjs05 init.d]# yum install samba sam ...
- Centos6.5以下Samba服务配置
一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...
- 《samba服务配置的文本》
创建简单的samba服务器 samba 很少用于互联网 /大部分用于局域网 网页更新/ 首先看下你是否安装后了samba. rpm -qa | grep samba samba的简介 1)samb ...
- Centos samba 服务配置
1背景 转到Linux有段时间了,vim操作还不能应对工程代码,之前一直都是Gnome桌面 + Clion 作开发环境,无奈在服务器上没有这样的环境, 看同事是(Windows)Source Insi ...
- linux下Samba服务配置
SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可 ...
- SAMBA 服务配置
Samba文件共享服务 Linux系统中一种文件共享程序 在Windows网络环境中,主机之间进行文件和打印机共享是通过微软公司自己的SMB/CIFS网络协议实现的.SMB(Server Messag ...
- Samba服务配置及配置文件说明
前言 1.配置Samba服务为什么要关闭防火墙(firewalld)和Selinux? 在linux操作系统中默认开启了防火墙,Selinux也处于启动状态,一般状态为enforing:所以,在我们搭 ...
随机推荐
- python导包路径的修改
1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...
- Mybatis-spring 传统dao开发
jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?chara ...
- 1安装Linux
第二天笔记打卡. 系统安装注意:1.DATE&TIME2.Server with GUI3.分区默认4.网络开启 源代码安装:1.安装难度高2.编译环境复杂3.解决依赖关系 源代码:2.部署编 ...
- docker安装portainer
安装好docker之后,可以使用portainer对容器进到管理 docker安装portainer命令 #这一步可以省略,直接运行可以下一条docker pull portainer #因为dock ...
- 修改tomcat的编码方式,可以解决某些get请求乱码问题
在tomcat/conf/server.xml配置文件添加如下,修改tomcat的编码方式 <Connector URIEncoding="utf-8" connection ...
- Fiddler响应post的请求 request body
是想传json格式的数据,请求头可以这样写:(应该先勾选 post,然后写上正确滴请求地址) User-Agent: Fiddler Host: localhost:1455 <span sty ...
- spring proxy-target-class
<tx:annotation-driven transaction-manager="transactionManager" ...
- 348. Design Tic-Tac-Toe设计井字游戏
[抄题]: Design a Tic-tac-toe game that is played between two players on a n x n grid. You may assume t ...
- spring多线程
Spring4.x高级话题(二):多线程 一. 点睛 Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程.使用ThreadPoolTaskExecutor可实现一个基于线程池 ...
- 写jsp文件时需要注意的一些小细节
①jsp文件的最开始的部分: <%@ page language="java" contentType="text/html; charset=UTF-8" ...