Samba服务器:
Samba服务器是一种应用于局域网之内,为安装有Windows、Linux等操作系统的主机之间提供文件和打印机共享服务的自由软件。Samba一词来自于对术语SMB服务信息块的扩展,即Samba是SMB的另一种表述。SMB协议是一种可用于实现文件与打印机共享的应用层网络协议。
1)文件和打印机共享服务
2)身份验证和授权服务
3)名字解析服务
4)浏览服务列表功能
# http://www.samba.org/
NetBIOS网络基本输入输出。---->发展成为运行在TCP/IP网络上的NBT协议。
Samba服务器的守护进程:smbd和nmbd
smbd进程:用于提供文件和打印机共享服务以及身份验证和授权服务。
nmbd进程:维护NetBIOS与IP地址之间的映射,提供NetBIOS名字解析服务以及浏览服务列表功能。
sudo service smb start
sudo service nmb start
netstat -lp | grep netbios
netstat -lp | grep netbios
# netbios-ssn:表示NetBIOS会话。
# netbios-ns:表示NetBIOS名字服务。
# netbios-dgm:表示NetBIOS数据包服务。
rpm -qa | grep samba
yum install samba
#samba:Samba服务器软件以及基本的客户端软件
#samba-client:增强型的Samba客户端软件
#samba-common:为Samba服务器软件及客户软件提供一些公共文件
#samba-winbind:守护进程
#samba-winbind-clients:winbind服务的客户端软件
#/etc/samba-->Samba服务器配置文件: smb.conf主配置文件;lmhosts提供NetBIOS名称与IP地址之间的映射记录;smbusers:Samba用户列表
smb.conf基本结构:
【段名称】
#3个特别段:[global],[homes],[printers]
#【global】:关于一些全局参数的设置,如安全级别、工作组等。
#【homes】:当客户端以Samba用户的身份成功通过验证后,服务器将会根据该段的设置向用户提供共享服务。
#【printers】:用于提供打印机共享的参数设置。
参数名=参数值
【段名称】
参数名=参数值
……
……
smb.conf主要参数:
security:表示安全级别,该参数是Samba服务器设置中最为重要的参数之一。
workgroup:表示所在工作组,一般建议设置为与局域网中Windows主机所在的工作组相同。
netbios name:表示Samba服务器的NetBIOS名称。
共享设置方面的参数: #可使用在共享段
comment:关于该段的基本说明
path:共享内容的所在目录
browseable:是否在可用共享名称列表中显示该段,可设置为yes或no
writable:是否可以向共享目录写入内容,可设置为yes或no
valid users:可以访问共享内容的有效用户列表。
guest ok:是否开放来宾账号,默认设置为no
--------------------------------------------------------------------------------------------------------
利用testparm检查smb.conf:
testparm #命令行输入testparm
---------------------------------------------------------------------------------------------------------
设置SELinux和防火墙:
1)设置安全上下文类型为samba_share_t #对于用户创建的需要共享的目录。如:
mkdir share
ls -Zd share
chcon -t samba_share_t /home/share
ls -Zd share
2)SELinux布尔值的设置:
samba_enable_home_dirs:允许共享用户主目录
samba_export_all_rw:允许共享由系统创建的目录
#如 setsebool -P samba_home_dirs on
---------------------------------------------------------------------------------------------------
Samba用户管理:
Samba用户是指 登录Samba服务器以获取服务的用户,默认情况下Linux用户并非Samba用户,但Samba用户一定首先是Linux用户。
passdb backend=tdbsam #Samba用户设置Samba密码,在sam.conf文件中的参数设置
/var/lib/samba/private #Samba用户的账号密码信息存储的数据库位置
pdbedit 【选项】 【Samba用户名】:Samba用户管理
-L:列出所有Samba用户
-u:后加Samba用户名参数,指定所要操作的Samba用户
-a:增加Samba用户,后加Samba用户
-x:删除一个Samba用户,后加Samba用户参数
-v:显示用户详细信息
smbpasswd 【Samba用户】:修改Samba用户密码
smbstatus 【选项】:查看Samba服务器的使用情况,报告当前Samba服务器的连接
--------------------------------------------------------------------------------------------------------
Windows中使用Samba服务:
1)【Windows徽标键】->【控制面板】->【网络和共享中心】->【高级共享设置】开启
2)【Windows徽标键】->【计算机】->【文件资源管理器】->【网络】->查看到其中的计算机名称(NetBIOS)->搜索和查看、使用Samba服务器
3)【Windows徽标键】->【控制面板】->【用户账户】设置账号密码->进行针对特定用户特定目录以共享【选中目录或文件设置】
4)取消远程连接Samba服务器()清空连接列表:net use * /del
----------------------------------------------------------------------------------------------------------
Linux中使用Samba服务:
1)使用图形界面工具:
【桌面面板菜单“位置”】->【连接到服务器】->【服务类型:Windows共享】,【服务器:Windows主机IP或NetBIOS名称或Samba服务器的IP】等->【连接】
【桌面面板菜单“位置”】->【网络】
2)smbclient 【选项】 服务名称:访问Samba服务器并使用局域网共享资源
-L:后加目标主机参数,根据服务名称列出目标主机的共享内容
-U:后加Samba用户名以指定登录的Samba用户
#smbclient 【选项】 服务名称 #服务名称: //目标主机/共享名称
smbclient -L //LINUX-A -U linux # LINUX-A 为NetBIOS名称。
smbclient -U think //think-pc/Documents
smb:\>
cd:切换服务主机中的目录
lcd:切换本地主机中的目录
del:删除文件
ls:查看目录内容
get:下载文件内容
put:上传文件内容
quit/exit:退出服务
3)以挂载方式使用Samba服务:
mount -t cifs //主机IP地址/共享目录 挂载点 -o username=用户名
mkdir /mnt/think-docs
mount -t cifs //192.168.126.128/Documents /mnt/think-docs -o username=linux
mount | grep think-docs
cd /mnt/think-docs
ls
---------------------------------------------------------------------------------------------------------------
配置安全级别为share的Samba服务器:
NetBIOS名称为LINUX-A的Samba服务器存放共享文件,LINUX-B主机发布共享文件给LINUX-A致使->其他局域网主机能访问LINUX-A上文件。
echo 192.168.126.128 LINUX-B >> /etc/hosts #192.168.126.128为主机LINUX-B地址。加入到LINUX-A的IP映射中去/etc/hosts
echo 192.168.126.126 LINUX-A >> /etc/hosts #同理
workgroup=WORKGROUP
netbios name=LINUX-A
hosts allow=192.168.126.0/24
security=share #在LINUX-A中修改/etc/smb.conf。本段为【global】段内容
{BShare]
comment=share
path=/home/LINUX-B-Share
browseable=yes
guest ok=yes
writable=no #加入的自定义共享段。另外,【homes】暂时被注释
testparm # linux 命令行 #另外,为LINUX-A设置防火墙
mkdir /home/LINUX-B-Share
chcon /home/LINUX-B-Share -t samba_share_t
ls -Zd /home/LINUX-B-Share
useradd LINUX-B-USER
passwd LINUX-B-USER
` chcon LINUX-B-USER:LINUX-B-USER /home/LINUX-B-Share/
ls -ld /home/LINUX-B-Share
#LINUX-A的/home/LINUX-B-Share目录。LINUX-A上操作
#重启LINUX-A的smb和nmb俩系统服务
scp -r /root/backup.d/LINUX-B-USER@LINUX-A:/home/LINUX-B-Share
#远程复制上传文件
#LINUX-B主机上操作