Centos 8 搭建samba文件共享服务(超详细) | 您所在的位置:网站首页 › 文件服务器如何搭建目录共享文件夹 › Centos 8 搭建samba文件共享服务(超详细) |
文章目录
一、samba文件共享服务简介二、搭建及设置步骤
一、samba文件共享服务简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。 CIFS: Common Internet File System通用网络文件系统,是windows主机之间共享的协议,samba实现了这个协议,所以可以实现wondows与linux之间的文件共享服务。 Samba服务程序logo: 实验环境:VMware Workstation 15.5 、X Shell、Windows 10 专业工作站版 1、首先,为服务器安装DHCP服务 [root@localhost ~]# yum -y install dhcp*2、dhcp服务模板路径为/etc/dhcp/dhcpd.conf,但打开后提示你到/usr目录中去寻找模板,所以我们要将/usr中的模板复制一份到/etc目录中 [root@localhost ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf cp:是否覆盖'/etc/dhcp/dhcpd.conf'? yes ## 替换掉原先的空白文件3、修改dhcp服务配置文件 option domain-name "test.com"; ## 修改DNS服务器域名 option domain-name-servers 192.168.50.133; ## 修改DNS服务器IP subnet 192.168.50.0 netmask 255.255.255.0 { ## 设置网段及子网掩码 range 192.168.50.140 192.168.50.200; ## 设置可分配的IP地址池 option routers 192.168.50.133; ## 设置网关 } 【注意】:每一行末必须有以分号结尾且最后以一个大括号结束4、开启dhcp服务 [root@localhost ~]# systemctl start dhcpd5、打开另一台win10客户端,尝试使用dhcp自动获取IP 首先设置网卡,将“自动获得IP复制“及”自动获得DNS服务器地址“两个选项勾上 在搜索框中输入cmd打开”命令提示符“,因为之前我为这台机器配置过IP,所以先释放一下原先IP地址 C:\Users\GYW>ipconfig /release再获取一下新地址 C:\Users\GYW>ipconfig /renew可以看出客户端已经成功获取到dhcp服务器提供的地址了,那我们再来测试一下客户机与服务器的连通性 Ping一下dhcp服务器ip,发现可以ping通,配置完成实验继续: 6、安装samba服务 [root@localhost ~]# yum -y install samba7、查看并修改samba服务配置文件 [root@localhost samba]# cd /etc/samba | ll ## 进入samba服务目录并查看该目录下所有内容 总用量 20 -rw-r--r--. 1 root root 20 4月 24 10:41 lmhosts -rw-r--r--. 1 root root 706 4月 24 10:41 smb.conf ## 这个就是配置文件 -rw-r--r--. 1 root root 11327 4月 24 10:41 smb.conf.example因为配置文件模板中有很多注释内容用不到而且影响阅读,所以需要删选出来导入smb.conf文件中 [root@localhost samba]# grep -v "#" smb.conf.example.bak > smb.conf ## 反向筛选出不带“#”的内容后输出到smb.conf中编辑配置文件并修改内容 [root@localhost samba]# vi smb.conf ## 编辑配置文件 修改并添加如下内容: 17 security = user ## 修改为匿名身份验证 18 map to guest = Bad User 【特别注意!】:在原先的samba3中的security=share在samba4中已经不再支持了,如果希望实现匿名访问必须调整参数! 如果你安装的是samba3,则可以继续使用security = share 如果不知道版本的化可以使用以下命令进行查看: [root@localhost opt]# rpm -qa samba samba-4.11.2-13.el8.x86_64 在文件末尾插入以下内容: [share] path=/opt/abc ## 指定文件路径 public=yes ## 是否共享 browseable=yes ## 是否能够访问 writable=yes ## 是否能够写入 create mask=0644 ## 所有新建的文件权限都是644 directory mask=0755 ## 所有在该目录下新建的子目录的权限为777 配置完成后保存退出8、修改/opt/目录下在/abc目录权限 [root@localhost opt]# chmod 777 /opt/abc9、关闭系统核心防护及防火墙功能 [root@localhost opt]# setenforce 0 [root@localhost opt]# systemctl stop firewalld10、开启samba服务 [root@localhost opt]# systemctl start smb11、查看服务是否启动(查看端口号是否开启) [root@localhost opt]# netstat -antp | grep -E "139|445" tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 33985/smbd tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 33985/smbd tcp6 0 0 :::445 :::* LISTEN 33985/smbd tcp6 0 0 :::139 :::* LISTEN 33985/smbd 【PS】:samba服务的端口号为139和445 grep -E :开启扩展(Extend)的正则表达式12、从客户端进行远程访问服务器 在地址栏中输入服务器IP,回车即可访问 在目录中随便创建一个文件 回到服务端查看该文件的创建者,发现是nobody [root@localhost opt]# cd /opt/abc/ | ll 总用量 0 -rw-r--r--. 1 nobody nobody 0 7月 18 00:10 test.txt [root@localhost abc]# id nobody uid=65534(nobody) gid=65534(nobody) 组=65534(nobody)13、众所周知,匿名就代表着谁都可以访问服务器进行文件的编辑,这是非常危险的,所以生产环境中需要开启身份验证,下面就来实操一下 编辑samba服务配置文件 [root@localhost abc]# vi /etc/samba/smb.conf 参照之前创建的模板插入以下内容: [def] path=/opt/def browseable=yes create mask=0644 directory mask=0755 valid users=tom, jerry ## 允许tom和jerry用户进行访问 write list=tom ## 仅允许tom用户进行写入 编辑完成后保存退出14、因系统中还没这两个用户,先来创建一下 [root@localhost abc]# useradd tom ## 创建tom用户 [root@localhost abc]# useradd jerry ## 创建jerry用户 [root@localhost abc]# smbpasswd -a tom ## 为tom用户创建密码 New SMB password: ## 输入密码 Retype new SMB password: ## 确认密码 Added user tom. ## 创建成功! jerry用户创建操作相同,这里就不再演示了 创建完成后使用命令查看一下创建的用户: [root@localhost abc]# pdbedit -L tom:1001: jerry:1002:15、因为/opt目录下还没有def这个目录,所以来创建一个 [root@localhost abc]# mkdir /opt/def ## 创建def目录 [root@localhost abc]# chmod 777 /opt/def/ ## 设置目录权限为77716、重启samba服务 [root@localhost abc]# systemctl restart smb15、下面就可以使用win10客户机来尝试登陆访问了 注意:因为之前登陆过会有信息缓存,所以要先清空缓存 打开命令提示符输入一下命令: C:\Users\GYW>net use * /d16、登陆服务器,输入刚才创建的用户名及密码进行登陆 登陆成功! 尝试创建一个文件: 也是OK的 17、以上说明tom用户使用正常,现在来测试jerry用户 注意:在登录之前同样要清空缓存 尝试对刚才创建的文件进行改名 发现没有操作权限 18、samba中还可以设置别名登录 编辑配置文件 [root@localhost samba]# vi /etc/samba/smbusers 【注意】:在samba4中没有这个文件,所以可以使用vi命令可以自动创建一个 添加如下内容: tom = guest01 guest 02 修改samba主配置文件,并增加一行内容:vi /etc/samba/smb.conf security = user map to guest = Bad User passdb backend = tdbsam username map = /etc/samba/smbusers ## 添加这一行内容 修改完成后保存退出 别忘了重启samba服务:systemctl restart smb19、回到客户端清空一下缓存,使用刚设置的用户别名重新进行登陆 登陆成功并可以创建文件 20、下面来设置一下访问控制列表,禁止某个(些)IP或网段访问samba服务 首先编辑配置文件 [root@localhost samba]# vi smb.conf [def] path=/opt/def browseable=yes create mask=0644 directory mask=0755 valid users=tom, jerry write list=tom hosts deny=192.168.50.140 192.168.100. ## 禁止.140的IP及100段IP访问 修改完保存退出21、重启samba服务并在客户机清除缓存重新尝试登录 这时候就会发现无论怎样访问都会提示权限拒绝! 22、最后我们来将windows中的目录挂载到Linux本地中 在L服务端根目录下创建一个data目录 [root@localhost ~]# mkdir /data在客户端的E盘也创建一个文件夹 23、因为想要实现的是从Linux访问客户端的文件,所以要在windows客户端进行设置 首先开启来宾用户 右击“我的电脑”选择“管理”,在计算机管理窗口中左侧选择“本地用户和组中的用户,在右侧就会显示”Guest“账户,默认是禁用的,现在我们将它启用 24、接着在搜索栏中输入“secpol.msc”打开“本地策略”,从“拒绝从网络访问这台计算机”中将Guest用户删除 25、在“安全选项”中的“网络访问:本地账户的共享和安全模型”中选择“仅来宾”项单击确定 26、在全部设置按成后记得要更新一下本地策略 C:\Users\GYW>gpupdate /force27、更新完策略后右击需要共享的文件夹,选择“属性”,在“安全”选项卡中单击“共享”按钮,下拉列表中选择“Guest”后单击“共享“按钮即可 28、切换到“安全”选项卡,选择Guest账户,单击“编辑”按钮,选择Guest账户,并单击下面的“允许完全控制”按钮 29、从服务端查看共享文件夹 [root@localhost ~]# smbclient -L 192.168.50.140 ## 列出某个IP地址所提供的共享文件夹 Enter MYGROUP\root's password: ## 因为是匿名,所以密码为空 Sharename Type Comment --------- ---- ------- ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 guazai Disk ## 已经可以看到共享文件夹了 IPC$ IPC 远程 IPC SMB1 disabled -- no workgroup available30、现在将客户端的guazai文件夹挂载到Linux的data目录中 [root@localhost ~]# mount.cifs //192.168.50.140/guazai /data ## 将远程目录挂载到本地 Password for root@//192.168.50.140/guazai: ## 密码为空,回车即可查看磁盘挂载情况 [root@localhost ~]# df -Th 文件系统 类型 容量 已用 可用 已用% 挂载点 devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 10M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda3 xfs 295G 6.3G 289G 3% / /dev/sda1 ext4 976M 189M 721M 21% /boot tmpfs tmpfs 376M 1.2M 375M 1% /run/user/42 tmpfs tmpfs 376M 3.5M 372M 1% /run/user/0 /dev/sr0 iso9660 7.7G 7.7G 0 100% /run/media/root/CentOS-8-2-2004-x86_64-dvd //192.168.50.140/guazai cifs 200G 6.3G 194G 4% /data ## 已经挂载成功了!挂载完成后就可以任意上传下载、修改其中的文件了 |
CopyRight 2018-2019 实验室设备网 版权所有 |