设为首页 收藏本站
查看: 248|回复: 0

[经验分享] Samba服务搭建及详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-28 08:47:47 | 显示全部楼层 |阅读模式
Samba文件共享服务1.  什么是Samba文件共享服务  
    1.1       Samba的含义
Samba是linux和unix系统上实现SMB/CIFS协议的一个免费软件,由服务器和客户端程序构成。
SMB:局域网支持共享文件和打印机的一种通信协议,为局域网内不同计算机之间提供文件及打印机等资源的共享服务
             Samba原理图:
QQ截图20150928084600.png
      1.2       Samba的包组
    Samba(服务器端软件包):包含了samba的主要daemon档案(smbd及nmbd)、samba的文件档(document)、以及其他与samba相关的logrotate设定文件及开机预设选项档案等。
    Samba-common(Samba公共文件软件包):主要提供了SAMBA的主要设定档(smb.conf)、smb.conf语法检验的测试程序(testparm)等等。
    Samba-client(客户端软件包):提供了当linux作为SAMBA Client端时,所需要的工具指令,例如挂载SAMBA档案格式的执行档smbmount等等。
       1.3       Samba的进程及作用
    Samba有两个守护进程:smbd和nmbd,这两个守护进程是独立的启动脚本。
    Smbd:为客户端提供文件共享服务和打印机服务,并且负责用户权限验证以及锁功能。Smb服务启动smbd。端口号:TCP协议的139/445端口,netstat-nutlp查看端口信息
    Nmbd:提供NetBIOS名称服务来满足基于CIFS(Common Internet File System)协议的共享访问环境。Nmb服务启动nmbd。端口号:UDP的137端口
    或许表格会更清晰的了解Smbd和Nmbd,嘿嘿

守护进程
功能
启动服务
端口号
Smbd
文件共享服务、打印机服务、用户权限验证及锁功能
Smb服务
TCP协议的139/445端口
Nmbd
NetBIOS名称服务
Nmb服务
UDP协议的137端口
2.  配置安装Samba服务器
    2.1       关闭防火墙和selinux
1
2
3
4
[iyunv@Samba ~]# service iptables stop #临时关闭防火墙
[iyunv@Samba ~]# chkconfig iptables off #永久关闭防火墙
[iyunv@Samba ~]# setenforce 0 #暂时关闭selinux
[iyunv@Samba ~]# sed -i "/SELINUX=/cSELINUX=disabled" /etc/sysconfig/selinux  #永久关闭selinux



    2.2       安装Samba软件
1
[iyunv@Samba ~]# yum -y install samba



    2.3       创建共享目录
1
2
3
[iyunv@Samba ~]# mkdir/common  #创建公共目录common
[iyunv@Samba ~]# chmod777 /common       #给common目录授权
[iyunv@Samba ~]# echo"hello world\!" > /common/test.txt #创建测试文件test.txt



    2.4       修改配置文件
1
2
3
4
5
6
7
8
[iyunv@Samba ~]# vim /etc/samba/smb.conf
在结尾添加以下内容:
[common]                                 //共享名称为common
comment = Common share  //共享注释
path = /common                     //指定共享路径
browseable = yes                    //所有人可见
guest ok = no                           //拒绝匿名访问
writeable = yes                        //支持写入数据



    2.5     创建访问账号
1
2
3
4
5
6
[iyunv@Samba samba]# useradd -s/sbin/nologin smbuser   //创建用户
[iyunv@Samba samba]# smbpasswd -a smbuser     //创建密码
New SMB password:
Retype new SMB password:
Addeduser smbuser.
              Smbpasswd命令:修改samba密码 –a添加账户并设置密码;-x删除SMB账户;-d禁用SMB账户 –e 启用SMB账户



    2.6       启动服务
1
2
3
[iyunv@Samba ~]# servicesmb start
Shutting down SMB services:           [  OK  ]
StartingSMB services:               [  OK  ]



3.  客户端访问
    3.1       Windows客户端访问
    3.1.1            windows客户端访问
主机启动方式:windows键+R打开运行输入[url=]\\samba[/url]的ip
QQ截图20150928084610.png
当使用windows客户端访问时会经常出现这样的错误
QQ截图20150928084615.png
解决方式:网络右键属性打开网络和共享中心-更改适配器设置
QQ截图20150928084620.png
本地连接右键属性-点击共享

QQ截图20150928084638.png
将本地网卡共享给VMnet8
QQ截图20150928084654.png
然后重新打开以下你的samba客户端
然后输入你的用户名和密码就能进入
QQ截图20150928084701.png
    3.2       Linux客户端访问
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#用linux客户端访问时需要smbclient命令,需要安装
[iyunv@Samba ~]#yum -y install samba-client
#然后就可以执行smbclient命令
[iyunv@Samba ~]#smbclient -L //192.168.137.7  #查看主机共享信息
#执行上述命令可能会一个error:
[iyunv@Samba ~]#smbclient -L //192.168.137.7
Enter root's password:
session setup failed:NT_STATUS_LOGON_FAILURE
#这是由于使用的用户是root用户的原因,所以后面加个用户就行了
[iyunv@Samba ~]# smbclient -L//192.168.137.7 -U smbuser #查看共享信息
Enter smbuser's password:      #仅查看不需要密码,直接回车键
Domain=[MYGROUP] OS=[Unix] Server=[Samba3.6.23-20.el6]

Sharename       Type     Comment
---------       ----     -------
common          Disk      Common share
IPC$            IPC       IPC Service (Samba Server Version3.6.23-20.el6)
smbuser        Disk      Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba3.6.23-20.el6]
Server               Comment
---------            -------
Workgroup            Master
---------            -------
#管理共享目录文件
[iyunv@Samba ~]# smbclient -U smbuser//192.168.137.7/common
Enter smbuser's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba3.6.23-20.el6]
smb: \> ls
.           D       0  Thu Sep 24 23:45:22 2015
..           DR        0 Fri Sep 25 12:13:12 2015
test.txt               14  ThuSep 24 23:45:22 2015
35727 blocks of size 524288. 31695blocks available
smb: \> quit



    3.3       挂载Samba共享目录
1
2
3
#以挂载/test目录为例
[iyunv@Samba /]# mkdir /test
[iyunv@Samba /]# mount -t cifs//192.168.137.7/common /test -o username=smbuser,passwd="123456"   #挂载  cifs为网络文件系统



4.  Samba配置文件详细分析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[global]                                #定义全局策略
       workgroup = MYGROUP   #定义工作组
       server string = Samba Server Version %v
             #服务器提示字符,默认显示samba版本
       log file = /var/log/samba/log.%m       #定义日志文件
       max log size = 50         #定义日志文件单个文件最大容量为50KB
       security = user              #security选项将会影响客户端访问方式             #可以设置user、share、server、domain。User:代表用户名和密码验证;share:代表匿名访问;server:代表基于验证身份的访问,账户信息在另一台SMB服务器上;domain:同样基于验证身份验证,账户信息在活动目录中   
       passdb backend = tdbsam       #账户与密码存储方式,smbpasswd:使用老的明文格式存储账户及密码;tdbsam:代表基于TDB的密文格式存储;ldapsam:代表使用LDAP存储账户资料。
       load printers = yes                    #客户端在10分钟内没有打开任何Samba资源,服务器将自动关闭回话。
       cups options = raw                   #打印属性
[homes]                                                    #共享名称
       comment = Home Directories #注释,共享的描述信息
       browseable = no                       #共享目录是否可以被浏览
       writable = yes                            #共享目录是否可以进行写操作
[printers]                                                  #打印机共享
       comment = All Printers            
       path = /var/spool/samba        #打印机共享池
       browseable = no                       
       guest ok = no                      #是否允许匿名访问
       writable = no
       printable = yes
[common]                                                 #共享名称为common
       comment = Common share
       path = /common                       #指定共享目录
       valid users = tom jerry       #有效账户列表
create mask = 0750                 #客户端上传文件的默认权限
directorymask = 0775             #客户端创建目录的默认权限
browseable = yes                #客户端是否对所有人可见      
             writable= no                            #是否允许写入
            write list = tom                         #写权限账户列表
            admin users = tom                   #该共享的管理员,具有完全权限
            invalid users = root bin    #禁止root与bin访问common共享
            guest ok = no                      #是否允许匿名访问



本篇博文主要参考丁明一前辈的《linux运维之道》,这篇文章自己感觉能写的就这么多,如果其中有哪些错误希望大家能够不吝指导,嘿嘿~~~本篇文章完成于中秋,还是感觉放假清闲没有太多的杂事能够安心写完一篇博文就很满足了!!!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-119715-1-1.html 上篇帖子: 搭建局域网CentOS Yum服务器 下篇帖子: Telnet 服务器软件的安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表