CentOS 7下Samba服务安装与配置详解

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。

Samba由两个主要程序组成,它们是smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。

Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名称解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。

2. Samba安装与配置 2.1 Samba安装与查看

安装samba应用

yum -y install samba samba-client

启动Samba应用

systemctl start smb nmb

查看Samba服务进程

[root@Linuxidc-Server ~]# ps -ef | grep -E 'smb|nmb' root 9885 1 0 14:48 ? 00:00:00 /usr/sbin/nmbd root 9887 1 0 14:48 ? 00:00:00 /usr/sbin/smbd root 9888 9887 0 14:48 ? 00:00:00 /usr/sbin/smbd root 9889 9887 0 14:48 ? 00:00:00 /usr/sbin/smbd root 9890 9887 0 14:48 ? 00:00:00 /usr/sbin/smbd root 9959 9627 0 15:02 pts/0 00:00:00 grep --color=auto -E smb|nmb

查看Samba应用服务端口

smbd应用进程主要监听139和445端口, nmbd应用进程主要监听137与138端口。

[root@Linuxidc-Server ~]# netstat -tunlp | grep -E 'smbd|nmbd' tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 9887/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 9887/smbd tcp6 0 0 :::139 :::* LISTEN 9887/smbd tcp6 0 0 :::445 :::* LISTEN 9887/smbd udp 0 0 192.168.6.255:137 0.0.0.0:* 9885/nmbd udp 0 0 192.168.6.186:137 0.0.0.0:* 9885/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 9885/nmbd udp 0 0 192.168.6.255:138 0.0.0.0:* 9885/nmbd udp 0 0 192.168.6.186:138 0.0.0.0:* 9885/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 9885/nmbd

2.2 Samba服务配置介绍

1. 查看Samba配置文件

samba文件共享默认配置文件存放于/etc/samba/smb.conf下, 用于配置Samba服务内容。

cat /etc/samba/smb.conf [global] workgroup = SAMBA security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = root create mask = 0664 directory mask = 0775

2. Samba配置文件详解

全局参数 [global]

config file = /usr/local/samba/lib/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件 不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file=/etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。

workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。

server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。

netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13238.html