centos7搭建Samba 6.10服务文件共享匿名访问


一、samba是什么?

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,SMB(Server Message Block)服务器消息块

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

基于客户机/服务器的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba客户端

Samba在windows下使用的是NetBIOS协议,要使用linux下共享出来的文件,要确认windows系统安装了NetBIOS协议

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

例如,某台Samba服务器的IP地址为192.168.126.15,对应的工作组名称为MYWORKGROUP,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。

\\192.168.126.15\共享目录名称

\\MYWORKGROUP\共享目录名称

Samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权; UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。。

二、服务端

1.关闭防火墙和selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0

2.安装Samba服务,并设置开机自启

/** 执行以下命令查看是否已安装smb访问*/
[root@SMBserver ~]rpm -qa | grep samba    
//或yum list installed | grep samba
//若安装则先移除
[root@SMBserver ~]yum remove -y samba*
//安装smb服务
[root@SMBserver ~]# yum install -y samba
//
[root@SMBserver ~]# rpm -qa samba
samba-4.10.4-1.el8.x86_64
//查看samba信息
[root@SMBserver ~]# rpm -qi samba
Name        : samba
Epoch       : 0
Version     : 4.10.16		//版本,版本不同配置可能不同
Release     : 15.el7_9
Architecture: x86_64
Install Date: Wed 23 Jun 2021 11:05:10 PM EDT
...
//启动
[root@SMBserver ~]# systemctl start smb
[root@SMBserver ~]# systemctl start nmb
//设置开机自启
[root@SMBserver ~]# systemctl enable smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
[root@SMBserver ~]# systemctl enable nmb
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.  

//查看端口
[root@SMBserver ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1083/sshd           
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      24412/smbd          
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      24412/smbd          
tcp6       0      0 :::22                   :::*                    LISTEN      1083/sshd           
tcp6       0      0 :::445                  :::*                    LISTEN      24412/smbd          
tcp6       0      0 :::139                  :::*                    LISTEN      24412/smbd          
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1588/dhclient       
udp        0      0 192.168.174.255:137     0.0.0.0:*                           24420/nmbd          
udp        0      0 192.168.174.128:137     0.0.0.0:*                           24420/nmbd          
udp        0      0 0.0.0.0:137             0.0.0.0:*                           24420/nmbd          
udp        0      0 192.168.174.255:138     0.0.0.0:*                           24420/nmbd          
udp        0      0 192.168.174.128:138     0.0.0.0:*                           24420/nmbd          
udp        0      0 0.0.0.0:138             0.0.0.0:*                           24420/nmbd     

3.创建共享资源目录,并给予完全共享的(给全部的权限)

[root@SMBserver ~]# mkdir -p /sambadir/share
[root@SMBserver ~]# chmod 777 /sambadir/share/
[root@SMBserver ~]# ll /sambadir/
总用量 0
drwxrwxrwx. 2 root root 6 81 10:33 share

4.修改配置文件

[root@SMBserver ~]vim /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP            //这里换成WODGROUP
	security = user                  //这里不换成share,就用user,后面照样不用输入密码
	passdb backend = tdbsam
	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw
	map to guest = bad user          //匿名用户最主要就是添加这行,可以实现匿名访问

[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 = @printadmin root
	force group = @printadmin
	create mask = 0664
	directory mask = 0775

[share]                                      //自己创建的共享文件名,也可以不一样
	comment = my first samba-file        //访问提示信息
	path = /sambadir/share               //文件路径
	browseable = yes                     //是否可以浏览(是否浏览权限(yes为可见共享,no为隐藏共享))
	public = yes                         //是否公开(指明该共享资源是否能给游客帐号访问)
	writable = yes                       //是否可以写入文件(是否有写权限)

测试smb.conf文件语法是否错误

[root@SMBserver ~]# testparm 
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions
 //这里提示这样的信息,叫你回车就会显示刚刚写的配置文件的内容,就代表没有语法错误

5.重启smb,nmb服务

[root@SMBserver ~]# systemctl restart smb
[root@SMBserver ~]# systemctl restart nmb

到这里匿名访问的服务端就配置完成


三,Samba客户端配置

1,安装samba-client,cifs-utils软件包

//安装
[root@smbclient ~]# yum install -y samba-client cifs-utils
[root@smbclient ~]# rpm -qa samba-client cifs-utils
cifs-utils-6.2-10.el7.x86_64
samba-client-4.6.2-8.el7.x86_64
//使用smbclient 命令查看服务器的共享资源
[root@smbclient ~]# smbclient -L 192.168.174.128
Enter SAMBA\root's password:                   //直接回车,不用输任何东西
OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	share           Disk      my first samba-file
	IPC$            IPC       IPC Service (Samba 4.10.4)
OS=[Windows 6.1] Server=[Samba 4.10.4]

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

	Workgroup            Master
	---------            -------
	WORKGROUP            SMBSERVER

2,客户端挂载

//客户端创建挂载目录
[root@smbclient ~]# mkdir /smbdir
//客户端挂载服务端共享的资源(192.168.174.128为服务器的ip)
[root@smbclient ~]# mount.cifs -rw //192.168.174.128/share /smbdir/
Password for root@//192.168.174.128/share:      //这里也是直接回车就行,不用输任何东西
[root@smbclient ~]#
//查看是否挂载成功
[root@smbclient ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root     50G  1.1G   49G    3% /
devtmpfs                 901M     0  901M    0% /dev
tmpfs                    912M     0  912M    0% /dev/shm
tmpfs                    912M  8.7M  904M    1% /run
tmpfs                    912M     0  912M    0% /sys/fs/cgroup
/dev/sr0                 3.8G  3.8G     0  100% /mnt
/dev/mapper/rhel-home     27G   33M   27G    1% /home
/dev/sda1               1014M  143M  872M   15% /boot
tmpfs                    183M     0  183M    0% /run/user/0
//192.168.174.128/share   50G  2.0G   49G    4% /smbdir
 //最后一行说明挂载成功

3,测试

分别在客户端的挂载目录下和服务端的共享目录下分别创建一个文件或目录,并查看是否有被共享

4,windows访问

打开windows资源管理器,直接输入服务器ip回车即可,例:\192.168.174.128

原文地址:http://www.manongjc.com/detail/18-hiewrqwqrzxzmau.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值