Samba简介与配置

samba

1. samba简介

2. samba访问

3. 示例

1. samba简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

在此之前我们已经了解了NFS, NFS与samba-样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持windows平台,而本章要提到的samba是能够在任何支持SMB协议的主机之间共享文件的一种实现,当然也包括windows。

SMB (Server Messages Block,信息服务块)是一 种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB协议是C/S型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

Samba监听端口有

TCPUDP
139137
445138

tcp端口相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问。
udp端口相对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析。

samba进程:

进程对应
nmbd对应netbios
smbd对应cifs协议
xinbindd+ldap对应Windows AD活动目录

samba用户:

帐号密码
都是系统用户/etc/passwd Samba服务自有密码文件,通过smbpasswd -a USERNAME命令设置
/smbpasswd命令:
	-a Sys_ User	//添加系统用户为samba用户并为其设置密码
	-d				//禁用用户帐号
	-e				//启用用户帐号
	-x				//删除用户帐号
[root@ymm-xiaokeai ~]# mkdir /aaa    //创建文件(在编写文件的时候共享的aaa文件)
[root@ymm-xiaokeai ~]# useradd a    //创建用户(编写文件时可访问的用户)
[root@ymm-xiaokeai ~]# smbpasswd -a a    //查看用户是否添加完成
New SMB password:
Retype new SMB password:
Added user a.

Samba安全级别:

Samba服务器的安全级别有三个,分别是user, server, domain

安全级别作用
user基于本地的验证
server由另一一台指定的服务器对用户身份进行认证
domain由域控进行身份验证

以前的samba版本支持的安全级别有四个,分别是share, user; server, domain
share是用来设置匿名访问的,但现在的版本已经不支持share了,但是还是可以实现匿名访问的 只是配置方式变了

samba配置文件:

  • /etc/samba/smb.conf(主配置文件)
samba三大组成作用
[global]全局配置,此处的设置项对整个samba服务器都有效
[homes]宿主目录共享设置,此处用来设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中
[printers]打印机共享设置

常用配置文件参数:

参数作用
workgroup表示设置工作组名称
serverstring表示描述samba服务器
security表示设置安全级别,其值可为share、user、 server、 domain
passdbbackend表示设置共享帐户文件的类型,其值可为tdbsam (tdb数据库 文件)、 ldapsam(LDAP目录认证)、 smbpasswd (兼容旧版本samba密码文件)
comment表示设置对应共享目录的注释,说明信息,即文件共享名
browseable表示设置共享是否可见
writable表示设置目录是否可写
path表示共享目录的路径
guest ok表示设置是否所有人均可访问共享目录
pulic表示设置是否允许匿名用户访问
write list表示设置允许写的用户和组,组要用@表示,例如write list = root,@root
valid users设置可以访问的用户和组,例如valid users = root,@root
hosts deny设置拒绝哪台主机访问,例如hosts deny = 192.168.72.1
hosts allow设置允许哪台主机访问,例如hosts allow= 192.168.72.2
printable表示设置是否为打印机
//测试配置文件是否有语法错误,以及显示最终生效的配置:使用tes tparm命令
[root@ymm-xiaokeai ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[wangqiang]"
Loaded services file OK.
Server role: ROLE_STANDALONE

2. samba访问环境说明:

环境说明

服务器IP客户端IP
192.168.20.180192.168.20.123
//交互式数据訪向
smbclient -L HOST -U USERNAME
smbclient 11 SERVER/S hared_ name-U USERNAME
//在客戸机安装samba-client包
[root@ymm-a-frr ~]# yum install -y samba-client 
//査看samba服务器有喞些共享资源
[root@ymm-a-frr ~]# smbclient -L 192.168.20.180 -U 'Bad User'		//查看samba服务器上有哪些资源
Enter SAMBA\Bad User's password: 
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	wangqiang       Disk      wangqiang
	IPC$            IPC       IPC Service (Samba 4.6.2)
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	SAMBA                YMM-XIAOKEAI
//基于挂载方式访问
mount -t cifs //SERVER/shared_name /挂载到本地什么目录 -o username=USERNAME,password=PASSWORD
[root@ymm-a-frr ~]#mkdir /opt/smb
[root@ymm-a-frr ~]# mount -t cifs //192.168.20.180/wangqiang /opt/smb/ -o username='Bad User'     		//挂载
[root@ymm-a-frr ~]# df -h			//查看
文件系统                    容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root        17G  1.1G   16G    7% /
devtmpfs                    901M     0  901M    0% /dev
tmpfs                       912M     0  912M    0% /dev/shm
tmpfs                       912M  8.7M  903M    1% /run
tmpfs                       912M     0  912M    0% /sys/fs/cgroup
/dev/sda1                  1014M  143M  872M   15% /boot
tmpfs                       183M     0  183M    0% /run/user/0
/dev/sr0                    3.8G  3.8G     0  100% /mount
192.168.20.180:/nfs          17G  2.1G   15G   12% /nfs
//192.168.20.180/wangqiang   17G  2.1G   15G   12% /opt/smb

3、示例

配置用户认证共享:

在服务端上:
//关闭防火墙的四步
[root@ymm-xiaokeai ~]# systemctl stop firewalld     //关闭防火墙
[root@ymm-xiaokeai ~]# systemctl disable firewalld   //禁止开机自启
[root@ymm-xiaokeai ~]# vim /etc/selinux/config       //更改防火墙的配置文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled         //(更改为disabled) 
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
[root@ymm-xiaokeai ~]# setenforce 0     //查看测试
[root@ymm-xiaokeai ~]# yum install -y samba*   //下载samba(需下载全部)
[root@ymm-xiaokeai ~]# systemctl start smb nmb    //启动Samba
[root@ymm-xiaokeai ~]# ss -auntl    //查看端口(只需查看有无139和445端口)
tcp    LISTEN     0      50               *:139                          *:*                  
tcp    LISTEN     0      128              *:59982                        *:*                  
tcp    LISTEN     0      128              *:111                          *:*                  
tcp    LISTEN     0      128              *:20048                        *:*                  
tcp    LISTEN     0      128              *:22                           *:*                  
tcp    LISTEN     0      100      127.0.0.1:25                           *:*                  
tcp    LISTEN     0      50               *:445                          *:*        
[root@ymm-xiaokeai ~]# vim /etc/samba/smb.conf     //编写配置文件(建议不要修改原有的配置文件,按照原有的格式在后面重写)
        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
[yqm]
        path = /aaa
        guest ok = yes
        browseable = yes
        writable = yes
        write list = a
        hosts allow = 192.168.20.123
[root@ymm-xiaokeai ~]# mkdir /aaa    //创建文件(在编写文件的时候共享的aaa文件)
[root@ymm-xiaokeai ~]# useradd a    //创建用户(编写文件时可访问的用户)
[root@ymm-xiaokeai ~]# smbpasswd -a a    //查看用户是否添加完成
New SMB password:
Retype new SMB password:
Added user a.
[root@ymm-xiaokeai ~]# setfacl -m u:a:r-x /aaa/    //设置用户a对aaa文件只能读(在前面的配置文件中给的可读可写,外面给的只读只为做测试)
[root@ymm-xiaokeai ~]# getfacl /aaa/
getfacl: Removing leading '/' from absolute path names
# file: aaa/
# owner: root
# group: root
user::rwx
user:a:r-x
group::r-x
mask::r-x
other::r-x 


在客户端

[root@ymm-a-frr ~]# systemctl stop firewalld            	//关闭防火墙
[root@ymm-a-frr ~]# systemctl disable firewalld		//禁止开机自启
[root@ymm-a-frr ~]# vim /etc/selinux/config			//编写配置文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled			//改为disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@ymm-a-frr ~]# setenforce 0		//检查测试
[root@ymm-a-frr ~]# yum install -y samba-client		//下载Samba(只需下载Samba-client)
[root@ymm-a-frr ~]# smbclient -L 192.168.20.180 -U a		//查看服务端的东西
Domain=[YMM-XIAOKEAI] OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.6.2)
	yqm             Disk      						//共享的文件
	a               Disk      Home Directories			//共享的用户


Domain=[YMM-XIAOKEAI] OS=[Windows 6.1] Server=[Samba 4.6.2]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	SAMBA                YMM-XIAOKEAI
[root@ymm-a-frr ~]# mount -t cifs //192.168.20.180/yqm /c/ -o username=a,password=1		//临时挂
[root@ymm-a-frr ~]# df -h       //查看
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root   17G  1.1G   16G    7% /
devtmpfs               901M     0  901M    0% /dev
tmpfs                  912M     0  912M    0% /dev/shm
tmpfs                  912M  8.7M  903M    1% /run
tmpfs                  912M     0  912M    0% /sys/fs/cgroup
/dev/sda1             1014M  143M  872M   15% /boot
tmpfs                  183M     0  183M    0% /run/user/0
/dev/sr0               3.8G  3.8G     0  100% /mount
192.168.20.180:/nfs     17G  2.1G   15G   12% /nfs
//192.168.20.180/yqm    17G  2.1G   15G   12% /abc

配置匿名共享:

服务端//关闭防火墙的四步
[root@ymm-xiaokeai ~]# systemctl stop firewalld     //关闭防火墙
[root@ymm-xiaokeai ~]# systemctl disable firewalld   //禁止开机自启
[root@ymm-xiaokeai ~]# vim /etc/selinux/config       //更改防火墙的配置文件
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled         //(更改为disabled) 
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
[root@ymm-xiaokeai ~]# setenforce 0     //查看测试
[root@ymm-xiaokeai ~]# yum install -y samba-*		//下载Samba
[root@ymm-xiaokeai ~]# vim   /etc/samba/smb.conf

# you modified it.

[global]
        workgroup = SAMBA
        security = user
        map to guest = Bad User   //加上这一行
        passdb backend = tdbsam
[root@ymm-xiaokeai ~]# mkdir /opt/wangqiang		//创建共享文件
[root@ymm-xiaokeai ~]# chmod 777 /opt/wangqiang		//给文件赋予可读写的权限
[root@ymm-xiaokeai ~]# ll /opt/		//查看文件
总用量 0
drwxrwxrwx. 2 root root 6 326 15:36 wangqiang
[root@ymm-xiaokeai ~]# cat >> /etc/samba/smb.conf <<EOF	//对文件进行编辑(此格式可在外直接进行编辑)
> [wangqiang]
> commebt = wangqiang
> path = /opt/wangqiang
> browseable = yes
> guest ok = yes
> writable = yes
> public = yes
> EOF
您在 /var/spool/mail/root 中有新邮件
[root@ymm-xiaokeai ~]# tail -7 /etc/samba/smb.conf		//查看文件的七行
[wangqiang]
commebt = wangqiang
path = /opt/wangqiang
browseable = yes
guest ok = yes
writable = yes
public = yes
[root@ymm-xiaokeai ~]# systemctl start smb		//启动smb服务

在客户机上
[root@ymm-a-frr ~]# yum install -y samba-client      	//下载samba(这里不需要下载全部只需下载samba-cilent)
[root@ymm-a-frr ~]# smbclient -L 192.168.20.180 -U 'Bad User'		//查看samba服务器上有哪些资源
Enter SAMBA\Bad User's password: 
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	wangqiang       Disk      wangqiang
	IPC$            IPC       IPC Service (Samba 4.6.2)
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
	SAMBA                YMM-XIAOKEAI
[root@ymm-a-frr ~]# mount -t cifs //192.168.20.180/wangqiang /opt/smb/ -o username='Bad User'     		//挂载
[root@ymm-a-frr ~]# df -h			//查看
文件系统                    容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root        17G  1.1G   16G    7% /
devtmpfs                    901M     0  901M    0% /dev
tmpfs                       912M     0  912M    0% /dev/shm
tmpfs                       912M  8.7M  903M    1% /run
tmpfs                       912M     0  912M    0% /sys/fs/cgroup
/dev/sda1                  1014M  143M  872M   15% /boot
tmpfs                       183M     0  183M    0% /run/user/0
/dev/sr0                    3.8G  3.8G     0  100% /mount
192.168.20.180:/nfs          17G  2.1G   15G   12% /nfs
//192.168.20.180/wangqiang   17G  2.1G   15G   12% /opt/smb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值