Linux---------samba文件共享服务配置(一)

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

https://www.cnblogs.com/zoulongbin/category/839133.html

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服务器的客户端,默认注释

loglevel=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@VMredhat6samba]# 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服务

或者

[root@VMredhat6 samba]# service smb  restart

[root@VMredhat6 samba]# service nmb  restart

测试:

Windows系统操作:

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

Centos6.5---samba文件共享服务配置(一)的更多相关文章

  1. samba文件共享服务配置一(共2节)

    一.samba服务简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上 ...

  2. samba文件共享服务配置(multiuser机制)二 (共两节)

    smb客户端的multiuser挂载技术 --管理员只需要作一次挂载 --客户端在访问挂载点时,若需要不同权限,可临时切换新的共享用户[无需重新挂载] 实现方式 --挂载smb共享时启用multius ...

  3. Linux Samba文件共享服务配置

    http://blog.csdn.net/xht555/article/details/4631063

  4. Centos6.5---samba文件共享服务配置(二)

    Linux-----samba服务配置(二) 需求: 某公司销售部门提出一个文件共享需求,要求部门共享目录有三个,第一个共享目录所有销售部门人员都具有可读可写权限:第二个共享目录所有销售人员只读权限, ...

  5. samba文件共享服务的配置

    samba文件共享服务的配置 服务端配置 一.安装samba软件包 命令:yum -y install samba 查看是否安装samba. [root@Centos7-Server haha]# [ ...

  6. Linux基础学习-Samba文件共享服务

    使用Samba文件共享服务 Samba起源: 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了N ...

  7. 红帽7配置samba文件共享服务

    samba软件主要功能是为客户机提供共享使用的文件夹. 使用的协议是SMB(TCP 139).CIFS(TCP445). 所需的软件包:samba 系统服务:smb 1.安装samba服务 ~]#yu ...

  8. Linux Samba文件共享服务,安装与案例配置

    Samba服务器安装和配置 1:安装Samba服务器软件包 [root@localhost ~]# rpm -qa | grep samba [root@localhost ~]# yum -y in ...

  9. Samba文件共享服务

    Samba起源: 早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS开源文件共享程序:NFS ...

随机推荐

  1. laravel 模型操作

    1. 简介 2. 创建模型 //模型文件默认创建在app目录下,也可以指定创建在某个文件夹下,如Model/Goods 1. php artisan make:model Goods 2. 这种方式会 ...

  2. 报错:The import android.support cannot be resolved

    下一个android-support-v7-appcompat.jar 然后导入即可 :

  3. js-当前时间转换

    new Date().toLocaleString() 数组转换过后

  4. Tomcat服务相关配置

    安装服务: 进入安装目录-> bin ,在空白处按住shift+鼠标右键 ->在此处运行DOS命令窗口,将service.bat文件拖拽到命令窗口中,按enter键运行, 出现了“Usag ...

  5. PL/SQL链接Oracle出现乱码

    1.用Pl/sql时,中文注释是乱码,需要查看下oracle server端的字符集. SQL语句:select userenv('language') from dual 结果:SIMPLIFIED ...

  6. django 富文本编辑器

    创建工程,数据中数据格式设置为 models.TextField() 此时编辑器是普通的文本框. 使用 tinymce .安装 django-tinymce pip install django-ti ...

  7. Linux驱动之LCD驱动编写

    在Linux驱动之内核自带的S3C2440的LCD驱动分析这篇博客中已经分析了编写LCD驱动的步骤,接下来就按照这个步骤来字尝试字节编写LCD驱动.用的LCD屏幕为tft屏,每个像素点为16bit.对 ...

  8. What is REST API

    What is REST REST is acronym for REpresentational State Transfer. It is architectural style for dist ...

  9. Vue实现跑马灯的效果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. java上传文件常见几种方式

    1.ServletFileUpload 表单提交中当提交数据类型是multipare/form-data类型的时候,如果我们用servlet去做处理的话,该http请求就会被servlet容器,包装成 ...