在Windows网络环境中,主机之间进行文件和打印机共享是通过微软公司自己的SMB/CIFS网络协议实现的。SMB(Server Message Block,服务消息块)和CIFS(Common Internet File System,通用互联网文件系统)协议是微软的私有协议,在Samba项目出现之前,并不能直接与Linux/unix系统进行通信。
Samba是著名的开源软件项目之一,它在Linux/unix系统中实现了微软的SMB/CIFS网络协议,从而使得跨平台的文件共享变得更加容易。在部署windows、Linux/unix混合平台的企业环境时,选用Samba可以很好的解决不同系统之间的文件互访问题。
samba 服务端软件
samba-client 客户端软件
samba-common 提供服务端和客户端的公共组件
System-config-samba samba 的图形界面软件包
Samba-swat samba的web界面管理软件包
/usr/sbin/smbd 为客户机提供服务器中的共享资源的访问
/usr/sbin/nmbd 提供基于 NetBIOS 协议的主机名称解析
Samba的脚本 /etc/init.d/smb
Samba的端口:
Nmbd:(137138)NetBIOS 协议
smbd:139(SMB 协议) 445(CIFS 协议)
Samba服务的配置文件位于/etc/samba目录中,其中smb.conf是主配置文件。在smb.conf文件中,以“#”号开始的行表示注释性的文字,以“;”开始的行表示是配置样例。
在配置共享文件夹时,用户可以参考文件中提供的样例行进行设置。删除注释行,样例行及空行以外的内容,才是samba服务器的有效配置。
[global]全局配置:这部分配置项的内容对整个samba服务器都有效。
[homes]宿主目录共享设置:设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主文件夹中。
[printers]打印机共享设置:如果需要共享打印机设备,可以在这部分进行设置。若需要在smb.conf文件中设置新的共享文件夹,只需要增加一段如“[myshare]”开始的共享设置即可,其中“myshare”为用户自定义的共享名。新的共享文件夹设置可以参考“[homes]”和“[printers]”部分的内容。
Samba服务器的常见配置项及含义说明
配置项 | 说明 | |||
workgroup | 设置服务器所在的工作组名称。 | |||
server string | 设置服务器的说明文字,用于描述samba服务器。 | |||
security | 设置服务器的安全级别,share:可匿名访问、user:需由本服务器验证用户名及密码、server:需指定另一台服务器来验证用户名及密码、domain:由windows域控制器验证用户名及密码。 | |||
log file | 设置samba服务器的日志文件,默认设置为“/var/log/smaba/log.%m”,表示将日志文件保存到/var/log/samba目录中,按每个客户机建立一个日志文件。其中“%m”变量表示客户端主机名或ip地址。 | |||
passwd backend | 设置共享账户文件的类型,默认使用tdbsam(TDB数据库文件)。 | |||
comment | 设置对应共享目录的注释、说明信息。 | |||
path | 设置对应共享目录在服务器中的文件夹路径。 | |||
browseable | 设置该共享目录中“网络邻居”中是否可见,设置为no时相当于隐藏共享目录。 | |||
guest ok | 设置是否所有人都可以访问共享目录,与“public”配置项的作用相同。 | |||
writable | 设置该共享目录是否可写,与“read only”配置项的作用相反。 |
1.挂载光盘
[root@localhost-181118 ~]# mkdir /media/cdrom
[root@localhost-181118 ~]# mount /dev/cdrom /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost-181118 ~]#
2.安装软件包
[root@localhost-181118 ~]# cd /media/cdrom/Packages/
[root@localhost-181118 Packages]# rpm -ivh samba-3.6.9-164.el6.x86_64.rpm
warning: samba-3.6.9-164.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:samba ########################################### [100%]
[root@localhost-181118 Packages]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-*
[root@localhost-181118 Packages]# rpm -ivh samba-client-3.6.9-164.el6.x86_64.rpm Preparing... ########################################### [100%]
package samba-client-0:3.6.9-164.el6.x86_64 is already installed
[root@localhost-181118 Packages]# rpm -ivh samba-common-3.6.9-164.el6.x86_64.rpm Preparing... ########################################### [100%]
package samba-common-0:3.6.9-164.el6.x86_64 is already installed
[root@localhost-181118 Packages]#
3.创建测试文件备份smb.conf到自定义文件夹/beifen 下
[root@localhost-181118 Packages]# mkdir /gongxiang
[root@localhost-181118 Packages]# mkdir /beifen
[root@localhost-181118 Packages]# cp /etc/samba/smb.conf /beifen/
4.设置共享目录[test]将samba的安全级别改为share。
[root@localhost-181118 Packages]# vim /etc/samba/smb.conf
此处省略配置文件中的注释行
workgroup = MYGROUP
server string = Samba Server Version %v
此处省略配置文件中的注释行
log file = /var/log/samba/log.%m
max log size = 50
此处省略配置文件中的注释行
security = share
passdb backend = tdbsam
///[home]和[printers]全部注释掉,否则共享时家目录也会出现。
#[homes]
# comment = Home Directories
# browseable = no
# writable = yes
#; valid users = %S
#; valid users = MYDOMAIN\%S
///设置共享目录
[test]
comment = Public Stuff
path = /gongxiang
public = yes
read only = no
# valid users = test1,test2
# write list = test1
# directory mask = 0755
# create mask =0644
[181118]
comment = Public Stuff
path = /beifen
public = yes
read only = no
#[printers]
# comment = All Printers
# path = /var/spool/samba
# browseable = no
# guest ok = no
# writable = no
# printable = yes
5.关闭防火墙,启动服务并监听smb端口是否正常运行;
[root@localhost-181118 Packages]# service smb start
启动 SMB 服务: [确定]
[root@localhost-181118 Packages]# netstat -anpt | grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 48344/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 48344/smbd
tcp 0 0 :::139 :::* LISTEN 48344/smbd
tcp 0 0 :::445 :::* LISTEN 48344/smbd
[root@localhost-181118 Packages]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[root@localhost-181118 Packages]# setenforce 0
6.确认客户端的ip地址及联通性;
[root@localhost-181118 Packages]# ping 192.168.231.132
PING 192.168.231.132 (192.168.231.132) 56(84) bytes of data.
64 bytes from 192.168.231.132: icmp_seq=1 ttl=128 time=0.384 ms
^C
--- 192.168.231.132 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 953ms
rtt min/avg/max/mdev = 0.384/0.384/0.384/0.000 ms
7.访问测试文件,在windows中打开文件资源管理器输入\\ip地址进行访问;
- Samba服务的默认安全级别为user,要求提供用户验证。对于匿名共享服务,一般将安全级别设为share。
- 使用pdbedit工具可以创建、删除Samba共享用户。
- 通过smbusers文件可以为共享用户账号设置别名。
- 使用smbclient工具可以查询并登录、访问共享资源,而使用mount命令可以将共享文件夹挂载到本地。
转载请注明:XAMPP中文组官网 » Linux环境下安装Samba文件共享