Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
在早期网络世界当中,档案数据在不同主机之间的传输大多是使用 FTP 这个好用的服务器软件来进行传送。不过,使用FTP 传输档案却有个小小的问题,那就您无法直接修改主机上面的档案数据!也就是说您想要更改Linux 主机上的某个档案时,必需要由 Server 端将该档案下载到 Client端后才能修改,也因此该档案在 Server 与 Client 端都会存在。这个时候,万一如果有一天您修改了某个档案,却忘记将数据上传回主机,那么等过了一阵子之后,如何知道那个档案才是最新的?!
既然有这样的问题,可不可以在 Client 端的机器上面直接取用Server 上面的档案,如果可以在 Client 端直接进行 Server 端档案的存取,那么在Client 端就不需要存在该档案数据,也就是说,只要有 Server 上面的档案资料存在就可以!有没有这样的档案系统( File System )?很高兴的是, NetworkFile System, NFS 就是这样的档案系统之一!我只要在 Client 端将 Server所提供分享的目录挂载进来,那么在 Client 的机器上面就可以直接取用 Server上的档案数据,而且,该数据就像 Client 端上面的partition 一般!而除了可以让 Unix Like 的机器互相分享档案的NFS 服务器之外,在微软 ( Microsoft ) 上面也有类似的档案系统,那就是 CommonInternet File System, CIFS 这个咚咚啦!CIFS 最简单的想法就是目前常见的『网上邻居』。Windows 系统的计算机可以透过桌面上『网上邻居』来分享别人所提供的档案数据。不过,NFS仅能让 Unix 机器沟通, CIFS 只能让 Windows 机器沟通。伤脑筋,那么有没有让Windows 与 Unix-Like 这两个不同的平台相互分享档案数据的档案系统?
1991 年一个名叫Andrew Tridgwell 的大学生就有这样的困扰,他手上有三部机器,分别是跑DOS 的个人计算机、DEC公司的 Digital Unix 系统以及 Sun 的 Unix 系统。在当时,DEC 公司有发展出一套称为 PATHWORKS 的软件,这套软件可以用来分享 DEC 的Unix 与个人计算机的 DOS 这两个操作系统的档案数据,可惜让 Tridgwell 觉得较困扰的是,Sun的 Unix 无法藉由这个软件来达到数据分享的目的。这个时候 Tridgwell 就想说:『咦!既然这两部系统可以相互沟通,没道理Sun 就必需这么苦命吧?可不可以将这两部系统的运作原理找出来,然后让 Sun这部机器也能够分享档案数据呢?』,为了解决这样的的问题,这老兄就自行写了个program 去侦测当 DOS 与 DEC 的 Unix 系统在进行数据分享传送时所使用到的通讯协议信息,然后将这些重要的信息撷取下来,并且基于上述所找到的通讯协议而开发出ServerMessage Block (SMB) 这个档案系统,而就是这套 SMB软件能够让 Unix 与 DOS 互相的分享数据!( 注:再次的给他强调一次,在Unix Like 上面可以分享档案数据的 file system 是 NFS,那么在 Windows 上面使用的『网络邻居』所使用的档案系统则称为Common Internet File System, CIFS )
因此 Tridgwell就去申请了 SMBServer ( Server Message Block 的简写 ) 这个名字来做为他撰写的这个软件的商标,可惜的是,因为SMB 是没有意义的文字,因此没有办法达成注册。既然如此的话,那么能不能在字典里面找到相关的字词可以做为商标来注册呢?翻了老半天,呵呵!这个SAMBA刚好含有 SMB ,又是热情有劲的拉丁舞蹈的名称,不如就用这个名字来做为商标好了。如此,这成为我们今天所使用的SAMBA 的名称由来。

uos----windows之间共享
smb — uos
使用2个进程 smb ip之间的通信用smb (tcp)
nmb 主机名之间的通信用nmb (netbios协议)
smb tcp 139 445
nmb udp 137 138

配置samba
hosts allow = 192.168.200. EXCEPT 192.168.200.202
hosts deny = 192.168.100.0/24 #主机黑名单
同时出现,allow生效
workgroup = MYGROUP 工作组名
server string = Samba Server Version %v
#对方看到的共享信息,出于防止泄漏版本号的安全考虑,最好改掉
log file = /var/log/samba/log.%m
#%m代表客户端ip,多个客户端连接生成多个以客户端ip结尾的日志
max log size = 50 #日志大小50K
security = user #共享的模式
#share 不用输入用户名/密码,匿名可访问
#user 服务器用口令文件进行验证,客户端连接需要提供用户名和口令
#server 网络中配置专门的服务器认证
#domain 使用微软的DC认证

实验-匿名模式
apt install -y samba
systemctl start smbd
systemctl status smbd

mkdir /uos1
mkdir /uos2
mkdir /uos3
touch /uos1/file{1…9}
touch /uos2/file{11…19}
touch /uos3/file{111…119}
chmod o+rwx /uos1 #生产中尽量采用setfacl赋权更安全
chmod o+rwx /uos2
chmod o+rwx /uos3

vim /etc/samba/smb.conf
[uos1]
comment = uos
path = /uos1
browseable = yes
public = yes

systemctl restart smbd

客户端测试访问
apt install -y samba-common smbclient
smbclient -L 192.168.200.201
smbclient //192.168.200.201/uos1 #无需输入密码即可进入
smb: > ls
smb: > get file1 #put上传

如需写入需要在qin1的配置文件上打开writable = yes,并设置共享目录/uos1有o+w权限

批量下载
smb: >prompt
smb: >mget file*

windows客户端
设置虚拟机通过虚拟网络与真机连接
\192.168.200.202
net use * /del清除缓存

实验-用户模式
在server1上
useradd -s /sbin/nologin user1
useradd -s /sbin/nologin user2
useradd -s /sbin/nologin user3
smbpasswd -a user1
smbpasswd -a user2
smbpasswd -a user3
-d 禁用samba用户disable
-e 允许samba用户enable
-x 删除samba用户delete
pdbedit -L #提取/var/lib/samba/private/passdb.tdb数据库信息,查看用户列表
vim /etc/samba/smb.conf
security = user #更改
[uos1]
comment = uos1
path = /uos1
public = no
browseable = yes
writable = yes

[uos2]
comment = uos2
path = /uos2
public = no
browseable = yes
writable = no
write list = user1[uos3]
comment = uos3
path = /uos3
public = no
browseable = yes
writable = no
write list = user1 #只有user1授权写入
valid users = user1    #只有user1授权登陆

systemctl restart smbd
#优先级valid users>writable>write list
#writable=yes表示所有用户都有写的权限
#write list生效时必须writable=no
#write list和valid users可采用user1 @shichangbu +shichangbu的格式,中间用空格分开

在server2上面
smbclient -L //192.168.200.201
smbclient -U user1 //192.168.200.201/uos1 #输入user1密码可进入
用user1登录share1-3均可写入
用user2登录shuos1可写入,uos2可登陆不可写入,uos3不可登录

如果搭建了samba服务,无法写入
1.检测配置文件writable write list
2.检测文件系统是否有写的权限 ugo setfacl
3.防火墙

实验-普通挂载
在uos2上
mkdir /mnt/uos3/
mount -t cifs -o username=user3 //192.168.200.201/uos3/ /mnt/uos3/ //输入密码可挂载
ls -l /mnt/uos3/
umount /mnt/uos3/
vim /etc/fstab
//192.168.200.201/uos3 /mnt/uos3 cifs credentials=/etc/file 0 0
vim /etc/file
user=user3
password=user3
\或者可以不使用qinfile文件,直接写在fstab里
//192.168.200.201/uos3 /mnt/uos3 cifs username=user3,password=user3 0 0
\普通挂载su到其他用户可以直接使用挂载资源

实验-multiuser方式挂载一个用户
在server1上
pdbedit -L #查看哪些用户可以挂载
vim /etc/samba/smb.conf
[uos1]
comment = uos1
path = /uos1
public = no
browseable = yes
writable = no
write list = user1
valid users = user1 user2
systemctl restart smbd

在uos2上
useradd user1 #本地必须有和服务器对应的用户
useradd user2
useradd user3

在root用户下执行挂载
mkdir /mnt/uos1
mount -o multiuser,user=user1,sec=ntlmssp //192.168.200.201/uos1 /mnt/uos1
#输入密码可挂载,也加入password=user1直接挂载

su - user1
ll /mnt/uos1 #无权限
cifscreds add 192.168.200.1201 #输入uos1上user1的密码,从samba服务器获取认证
ll /mnt/uos1 #获得uos1上user1的权限,可登陆,可写入

su - user2
ll /mnt/uos1 #无权限
cifscreds add 192.168.200.201 #输入uos1上user2的密码,从samba服务器获取认证
ll /mnt/uos1 #获得uos1上user2的权限,可登陆,不可写入

su - user3
ll /mnt/uos1 #无权限
cifscreds add 192.168.200.201 #输入uos1上user3的密码,从samba服务器获取认证
ll /mnt/uos1 #获得uos1上user3的权限,不可登陆

在root用户下cifscreds clearall可清除获得的认证,su到其他用户需重新获取认证

多用户各自有配置文件的情况,可以建立用户文件,一次挂载多个用户,
vim /uos.txt
username=user1
password=user1
username=user2
password=user2

mount -o multiuser,credentials=/uos.txt,sec=ntlmssp //192.168.200.201/uos1 /mnt/uos1

fstab自动挂载
//192.168.200.201/uos1 /mnt/uos1 cifs defaults,multiuser,credentials=/uos.txt,sec=ntlmssp 0 0
mount -a

实验-单独用户配置文件
vim /etc/samba/smb.conf
[Golble]
config file = /etc/samba/smb.conf.%U #增加,%U代表用户名,以后有对应配置文件的用户将直接跳转读取自己的配置文件
删除所有文件夹设置信息,否则所有用户都能读写这些文件夹,造成安全性降低
cp /etc/samba/smb.conf /etc/samba/smb.conf.user3
vim /etc/samba/smb.conf.user3
删除config file = /etc/samba/smb.conf.%U
[uos3]
comment = uos3
path = /uos3
public = no
browseable = yes
writable = yes
systemctl restart smb

uos2上
smbclient -U user3 //192.168.200.201/uos3 #由于user3的配置文件中没有uos1和uos2,所以user3不能登录uos1和uos2

基于国产UOS操作系统的Samba服务相关推荐

  1. 手把手带你基于嵌入式Linux移植samba服务

    摘要:Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 本文分享自华为云社区<嵌入式Linux下移植samba服务--<基于北斗和4G ca ...

  2. IDR221F-H身份证阅读器模块基于国产UOS 系统(Linux内核)下的调用操作说明

    IDR221F-H身份证阅读器模块除支持Win系列操作系统,也支持国产操作系统,如通信UOS.银河麒麟Kylin.中标麒麟.Ubuntu.鸿蒙等操作系统,在基于UOS 系统(Linux内核)下的应用, ...

  3. 基于国产UOS操作系统第10章-docker容器

    容器 容器技术已经成为应用程序分装和交付的核心技术 容器技术内核组成(Cgroups-资源管理 NameSpace-进程隔离) 由于是在物理机器上实施隔离.启动一个容器.可以像启动一个进程一样快速 d ...

  4. 【设计大赛】基于RT-Thread和RA6M4实现samba服务的移动网盘

    本文详细介绍了基于RT-Thread操作系统和RA6M4处理器,如何移植和适配samba服务.同时,还提供Linux环境和QEMU仿真环境的参考移植,希望对大家有所启发和帮助. 文章目录 1 前言 2 ...

  5. 用samba服务构建基于企业级的文件共享服务

    用samba服务可轻松构建基于企业级的文件共享服务,配置起来比windows的NTFS+共享权限更简单,更容易,而且samba可以直接通过内核和用户交互数据,访问效率更高. ------------- ...

  6. 起航---开发基于国产华为鸿蒙操作系统的APP

    起航---开发基于国产华为鸿蒙操作系统的APP 从今儿个起,要准备学习开发三驾马车(苹果.安卓.华为)中的华为移动应用啦.很期待

  7. 国产巨芯:中芯国际燃爆芯片圈;360守护国产UOS系统安全

    众所周知,国内IT产业急需搭在中国的台子上.在国内IT产业当中,国产芯片是一块硬骨头,国产操作系统是另一块硬骨头.国内目前在这两领域都有一些不错的产品. 要想在基于国产芯片和国产操作系统的基础上建立我 ...

  8. 简单认识Samba服务以及Linux操作系统下部署案例解析

    1.首先在介绍Samba服务之前我们先来简单的认识一下SMB协议.SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主 ...

  9. [Samba] Linux(Centos)samba服务安装,Samba文件共享及Samba配置详解

    本片博客主要介绍了[Samba] Linux(Centos)samba文服务器安装案例,samba共享,samba服务,samba配置详解及网页配置samba工具samba-swat 的使用方法等. ...

最新文章

  1. 创建一个Table View
  2. kali系统网络设置
  3. CCF 202104 Python
  4. .NET特性(Attribute)应用一例
  5. 总结一些开源的网站检测扫描器源码(未完)
  6. 如何编写 maptalks plugin
  7. Win11系统使用DISM命令备份驱动程序的方法
  8. 惠普136nw打印机清零_HP惠普打印机清零大全
  9. Excel 固定表头
  10. 计算机四则运算的原理,计算机组成原理第九讲(除法-补码运算规则及浮点四则运算)(科大罗克露)...
  11. win10浏览器闪退_为什么win10浏览器总是闪退_win10浏览器闪退是怎么回事
  12. 中国车牌号的分类说明识别及含义
  13. 有没有java自编歌曲_简易音乐播放器制作
  14. 图片二维码,如何将图片制作成二维码
  15. 增量学习简介(incremental learning)
  16. 安装anaconda时需要卸载python么_怎么卸载python 安装 anaconda
  17. 第八届 CodeVita 国际编程大赛
  18. 6个usb口服务器无响应,USB插口无反应怎么办?USB接口不能用解决办法
  19. mt管理器逆向了解安卓----【mt管理器介绍】
  20. 速览|京东云11月产品与功能更新

热门文章

  1. 路由子系统——Scope
  2. 词性标注POS tagging
  3. 世界顶级的交互式反汇编工具——ida的使用详解
  4. 彻底搞懂Gamma矫正
  5. 网络编程--出现bind error: Address already in use问题
  6. oracle olap 不可用,[数据库]ORACLE OLAP错误ORA
  7. Amazon流量提升的几种方法
  8. postgresql boolean字段与smallint字段的自动转换
  9. 图像解码过程中,pycharm中出现FileNotFoundError: [Errno 2] No such file or directory等错误提示
  10. python控制led屏_python轮询机制控制led实例