基于linux下的samba文件共享系统

本文详细介绍了如何在Linux环境下配置Samba文件共享系统,包括客户端和服务端的安装,用户访问,目录权限设定,黑白名单及组设置,以及可写参数和多用户挂载的详细操作。通过SMB协议,实现跨设备文件的上传、下载及实时查看,同时探讨了匿名访问和认证机制。
摘要由CSDN通过智能技术生成

SMB 文件共享:

服务端口 : 通常使用 TCP/445 进行所有连接。还使用UDP137,UDP138和TCP/139进行向后兼容。
主配置文件 :/etc/samba/smb.conf

配置环境:

准备两台虚拟机,进行配置IP,yum源,更改主机名字方便辨识开始实验:

在客户端安装samba服务(ip:172.25.254.121)

[root@client ~]# yum install samba-client -y   安装服务

这里写图片描述

[root@client ~]# smbclient -L //172.25.254.221 匿名进行访问,什么也看不到

这里写图片描述
在服务端安装samba服务(ip:172.25.254.221)

[root@server ~]# yum search samba   寻找samba安装包
samba-client.x86_64 : Samba client programs    客户端应用程序
samba-common.x86_64 : Files used by both Samba servers and clients  Samba的支持文件
samba.x86_64 : Server and Client software to interoperate with Windows machines   服务器应用程序
[root@server ~]# yum install samba samba-client.x86_64 samba-common -y  安装samba服务

这里写图片描述pdedit命令用于管理SMB服务程序的账户信息数据库:

参数 作用
-a 用户名 建立samba用户
-x 用户名 删除samba用户
-L 列出账户列表
-Lv 列出账户详细信息的列表
[root@server ~]# systemctl start smb   开启服务
[root@server ~]# systemctl enable smb.service   开机自动启动
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server ~]# systemctl stop firewalld   关闭防火墙
[root@server ~]# systemctl disable firewalld  开机自动关闭
[root@server ~]# netstat -antlupe | grep smb   查看samba端口
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      0          72127      3611/smbd           
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      0          72128      3611/smbd           
tcp6       0      0 :::445                  :::*                    LISTEN      0          72125      3611/smbd           
tcp6       0      0 :::139                  :::*                    LISTEN      0          72126      3611/smbd           
[root@server ~]# id student   查看用户信息
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@server ~]# id westos   westos用户没有建立
[root@server ~]# smbpasswd -a student  添加student用户访问

这里写图片描述

在服务端配置samba用户:

[root@server ~]# smbpasswd -a westos  报错由于没有westos用户
[root@server ~]# useradd westos      建立westos用户
[root@server ~]# smbpasswd -a westos 添加westos用户访问
[root@server ~]# pdbedit -L    查看访问用户信息
student:1000:Student User
westos:1001:
[root@server ~]# pdbedit -x student  删除student用户访问
[root@server ~]# pdbedit -L      查看访问用户已经删除student
westos:1001:
[root@server ~]# smbpasswd -a student 重新添加student访问用户
New SMB password:
Retype new SMB password:
Added user student.
[root@server ~]# pdbedit -L   查看已经建立student用户
student:1000:Student User
westos:1001:

这里写图片描述
在客户端进行指定用户访问:

[root@client ~]# smbclient -L //172.25.254.221 -U student   用student用户进行访问
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
	student         Disk      Home Directories   disk表示可以访问挂载。
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

	Workgroup            Master
	---------            -------
[root@client ~]# smbclient //172.25.254.221/student -U student  直接登录,由于selinux功能影响
Enter student's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*   报错功能不允许代表服务端家目录没有开启所以不能访问
smb: \> quit

这里写图片描述
服务端打开家目录:

[root@server ~]# getsebool -a | grep samba  查看samba家目录为off
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off  布尔值允许本地 Linux 主目录作为 CIFS 文件共享导出至其他系统
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off    布尔值允许挂载远程 CIFS 文件共享并将其用作本地 Linux 主目录
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@server ~]# setsebool -P samba_enable_home_dirs on  打开samba家目录,-P永久打开家目录

这里写图片描述
客户端可以直接访问服务端家目录:

[root@client ~]# smbclient //172.25.254.221/student -U student  
Enter student's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Thu Jul 10 19:06:52 2014
  ..                                  D        0  Fri Jun  1 21:47:02 2018
  .bash_logout                        H       18  Wed Jan 29 07:45:18 2014
  .bash_profile                       H      193  Wed Jan 29 07:45:18 2014
  .bashrc                             H      231  Wed Jan 29 07:45:18 2014
  .ssh                               DH        0  Thu Jul 10 18:19:10 2014
  .config                            DH        0  Thu Jul 10 19:06:53 2014

		40913 blocks of size 262144. 28596 blocks available
smb: \> quit

这里写图片描述
SMB挂载:

在客户端路径内可以上传文件:

[root@client ~]# pwd  查看当前路径
/root
[root@client ~]# ls
anaconda-ks.cfg  Documents  Music     Public     Videos
Desktop          Downloads  Pictures  Templates
[root@client ~]# cd /etc/   在哪个路径就可以上传里面的东西
[root@client etc]# smbclient //172.25.254.221/student -U student  student用户访问
Enter student's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Thu Jul 10 19:06:52 2014
  ..                                  D        0  Fri Jun  1 21:47:02 2018
  .bash_logout                        H       18  Wed Jan 29 07:45:18 2014
  .bash_profile                       H      193  Wed Jan 29 07:45:18 2014
  .bashrc                             H      231  Wed Jan 29 07:45:18 2014
  .ssh                               DH        0  Thu Jul 10 18:19:10 2014
  .config                            DH        0  Thu Jul 10 19:06:53 2014

		40913 blocks of size 262144. 28581 blocks available
smb: \> !ls 显示/etc/下的所有东西
smb: \> put passwd
putting file passwd as \passwd (65.3 kb/s) (average 65.3 kb/s)
smb: \> put /bin/ls   上传不了/bin/下面的东西
NT_STATUS_OBJECT_PATH_NOT_FOUND opening remote file \/bin/ls
smb: \> quit

这里写图片描述

[root@client etc]# cd /bin/  切换到/bin/路径下才可以上传ls
[root@client bin]# smbclient //172.25.254.221/student -U student
Enter student's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> !ls  显示/bin/目录下的所有文件
smb: \> put mcat  上传文件
putting file mcat as \mcat (9924.0 kb/s) (average 9924.0 kb/s)
smb: \> touch file  还是不能建立文件
touch: command not found
smb: \> quit

这里写图片描述
在服务端:(查看客户端上传的文件)

客户端上传的文件在服务端家目录下面:
[root@server ~]# cd /home/student/  切换到家目录下
[root@server student]# ls
mcat  passwd

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值