SAMBA服务

SAMBA服务

SAMBA简介


Samba是linux和unix系统上实现SMB/CIFS协议的一组软件包,SMB/CIFS协议是Windows网络文件和打印共享的基础,负责处理和使用远程文件和资源。由于Samba的存在,使得Windows和Linux可以集成并互相通信,免去了之前必须使用FTP的麻烦,NFS 是架构在 RPC Server 上面一样, SAMBA 是架构在 NetBIOS (Network Basic Input/Output System, NetBIOS) 这个通讯协议上面所开发出来的。
1991 年澳大利亚大学生Andrew Tridgell 研发,最初是为了代替PC-NFS而开发, 通过Samba小组 的共同努力,现在已经成为了一个非常强大的软件包,Samba现已支持Linux、UNIX、Windows等平台。
Samba监听端口有:

TCPUDP
139137
445138

SAMBA软件包

SAMBA软件由3个软件包组成

  1. Samba(服务端软件包)
    包含了samba的主要daemon档案(smbd及nmbd)、samba的文件档(document)、以及其他与samba相关的logrotate设定文件及开机预设选项档案等。
  2. Samba-common(公用软件包)
    主要提供了SAMBA的主要设定档(smb.conf)、smb.conf语法检验的测试程序(testparm)等。
  3. Samba-client(客户端软件包)
    提供了当linux作为SAMBA Client端时,所需要的工具指令,例如挂载SAMBA档案格式的执行档smbmount等

SAMBA配置文件

/etc/samba/smb.conf
这是 Samba 的主要配置文件,基本上,咱们的 Samba 就仅有这个配置文件而已,且这个配置文件本身就是很详细的说明文件了,请用 vim 去查阅它吧!主要的设定项目分为服务器的相关设定 (global),如工作组、NetBIOS 名称与密码等级等, 以及分享的目录等相关设定,如实际目录、分享资源名称与权限等等两大部分。

/etc/sysconfig/samba
提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。

/etc/samba/smbusers
由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如 administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定

/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用户账号/密码时,会用到的数据库档案;

/etc/samba/lmhosts
这个档案的主要目的在对应NetBIOS name 与该主机名称的 IP ,事实上,他有点像是 /etc/hosts 的功能!只不过这个lmhosts 对应的主机名称是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!由于目前SAMBA 的功能越来越强大,所以通常只要您一启动 SAMBA 时,他就能自己捉到 LAN里面的相关计算机的 NetBIOS name 对应 IP 的信息,因此,这个档案通常可以不用设定了。

/etc/samba/smbpasswd
这个档案预设并不存在。它是SAMBA 预设的使用者密码对应表。当设定的 SAMBA 服务器是较为严密的,需要使用者输入账号与密码后才能登入的状态时,使用者的密码预设就是放置在这里( 当然啰,您可以自行在 smb.conf 里面设定密码放置的地方及密码文件名,不过,我们这里都以预设的状态来说明) 。比较需要注意的是,这个档案因为包含了使用者的密码,所以,当然权限方面要较为注意啦!这个档案的拥有者需要是root ,且权限设定为 600 才行。

配置安装Samba服务

安装Samba服务

[root@anes ~]# yum -y install samba
已安装:
  samba.x86_64 0:4.6.2-8.el7                                      

作为依赖被安装:
  samba-common-tools.x86_64 0:4.6.2-8.el7                         
  samba-libs.x86_64 0:4.6.2-8.el7

配置防火墙

[root@anes ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent \\--permanent永久生效 
success 
[root@anes ~]# firewall-cmd --reload \\重新载入
success
[root@anes ~]# systemctl restart firewalld.service \\重启防火墙

开放SAMBA特定端口

[root@anes ~]# firewall-cmd --zone=public --add-port=139/tcp --permanent \\ 开放139端口,永久生效
success
[root@anes ~]# firewall-cmd --zone=public --add-port=445/tcp --permanent
success
[root@anes ~]# firewall-cmd --zone=public --add-port=137/udp --permanent
success
[root@anes ~]# firewall-cmd --zone=public --add-port=138/udp --permanent
success
[root@anes ~]# firewall-cmd --reload \\重新加载
success
[root@anes ~]# systemctl restart firewalld.service \\重启服务

实例一

搭建匿名用户共享服务器

创建共享目录

[root@anes ~]# mkdir -p /opt/test 
[root@anes ~]# chmod 777 -R /opt/test/ 

配置共享服务器

[root@anes ~]# vim /etc/samba/smb.conf
[global]
    workgroup = SAMBA
    security = user
    map to guest = Bad User   \\匿名用户 
    passdb backend = tdbsam
    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw
[samba-shard]
    comment = hello,welcome    \\说明        
    path = /opt/test         \\共享文件的路径 
    browseable = yes           \\共享文件可见      
    guest ok =yes                   \\所有人都能访问  
    writable = yes                     \\读写权限
    public = yes   \\开启匿名访问

检查

[root@anes ~]# 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 "[samba-shard]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

[root@anes ~]# systemctl restart smb \\重启服务
[root@anes ~]# smbclient -L 192.168.220.137 -U 'Bad user' \\查看共享目录,不用输入密码,直接回车
Enter SAMBA\Bad user's password: 
OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	samba-shard     Disk      hello,welcome
	IPC$            IPC       IPC Service (Samba 4.6.2)

实例二

搭建用户认证共享服务器

映射共享目录,创建用户test

[root@anes ~]# useradd -M test

为test用户创建smb共享密码

[root@anes ~]# useradd -M test
[root@anes ~]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.

映射test为共享用户

[root@anes ~]# echo 'test
> share' > /etc/samba/smbusers
[root@anes ~]# vim /etc/samba/smb.conf
[global]
         workgroup = SAMBA
        security = user
        username map = /etc/samba/smbusers

创建一个共享目录test

[root@anes ~]# mkdir -p /opt/test 
[root@anes ~]# chmod 777 -R /opt/test/ 
[root@anes ~]# vim /etc/samba/smb.conf
[test]
        comment = test
        path = /opt/test
        browseable = yes
        guest ok = yes
        writable = yes
        write list = share
        public = yes

检查

[root@anes ~]# systemctl restart smb \\重启服务
[root@anes ~]#  smbclient -L 192.168.220.137 -U 'test'
Enter SAMBA\test's password: 
Domain=[ANES] OS=[Windows 6.1] Server=[Samba 4.6.2]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	samba-shard     Disk      hello,welcome
	IPC$            IPC       IPC Service (Samba 4.6.2)
	test            Disk      test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值