Linux-Samba的使用

Samba

1、介绍

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件
目的:解决不同操作系统之间进行资源传递的问题

我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印

原理:

Samba 服务功能强大,这与其通信基于SMB 协议有关。SMB 不仅提供目录和打印机共享,还支持 认证、权限设置。在早期哈,SMB 运行于NBT 协议(NetBIOS over TCP/IP)上,使用UDP 协议 的137、138 及TCP 协议的139 端口,后期SMB 经过开发,可以直接运行于TCP/IP 协议上,没有 额外的NBT 层,使用TCP 协议的445 端口。

1、协议协商
在这里插入图片描述
2、建立连接
在这里插入图片描述
3、访问
在这里插入图片描述4、关闭
在这里插入图片描述

端口:139、445

模式:C/S模式

扩展

NETBIOS协议 NetBIOS是Network Basic Input/Output System的简称,网络基本输入/输出系统协议。主要作用:通过NETBIOS协议获得计算机名称,然后把计算机名解析为对应IP地址。

使用场景

文件和打印机共享:文件和打印机共享是Samba 的主要功能,SMB 进程实现资源共享,将文件和 打印机发布到网络之中,以供用户可以访问。
身份验证和权限设置:smbd 服务支持user mode 和domain mode 等身份验证和权限设置模式,
通过加密方式可以保护共享的文件和打印机。
名称解析:Samba 通过nmbd 服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS 名解析为IP 地址。

浏览服务:局域网中,Samba 服务器可以成为本地主浏览服务器(LMB),保存可用资源列表, 当使用客户端访问Windows 网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。

2、安装

安装包

安装包说明
samba.*安装包
samba-client.*客户端安装包

挂载之后安装

[root@qianshuiliyu ~]# yum -y install samba samba-client  

启动

[root@qianshuiliyu ~]# systemctl restart smb
[root@qianshuiliyu ~]# systemctl enable smb   
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
如果重启且不需要断掉服务,可接reload加载配置文件
[root@qianshuiliyu ~]# systemctl reload smb

查看端口
在这里插入图片描述

3、配置文件

查看配置文件

[root@qianshuiliyu ~]# ls /etc/samba/smb.conf    
/etc/samba/smb.conf

4、客户端的使用

使用Linux客户端或windows都可以
关闭服务端的防火墙
1、linux客户端测试
smbclient -L 服务器ip

[root@qianshuiliyu_client ~]# smbclient -L 192.172.168.100
Enter root's password: 
# 没有密码就直接回车
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

        Workgroup            Master
        ---------            -------

在这里插入图片描述
2、windows进行访问

在这里插入图片描述
在这里插入图片描述
3、Linux访问
smbclient -L 目标IP 地址或主机名 -U 登录用户名%密码


Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
        user1           Disk      Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

        Workgroup            Master
        ---------            -------

4、Linux命令行访问
smbclient //目标IP 地址或主机名/共享目录 -U 用户名%密码

[root@qianshuiliyu_client ~]# smbclient //192.172.168.100/public
Enter root's password: 
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.10-114.el6]
smb: \> help
# 通过help查询命令

5、挂载

mount -t cifs //目标IP 地址或主机名/共享目录名称 挂载点 -o username=用户名%密码
cifs 就是samba所使用的文件系统

二、配置文件

1、参数说明

修改前进行备份,防止意外

[root@qianshuiliyu ~]# vim /etc/samba/smb.conf
[global]
# 全局设置
workgroup = MYGROUP
# 服务器所在的工作组或域名
server string = Samba Server Version %v
# 描述信息
# username map = /etc/samba/smbusers
# 账号映射设置,虚拟账号

log file = /var/log/samba/log.%m
# 日志文件

security = user
# 安全级别
# passdb backend = tdbsam
 smb passwd file  = /etc/samba/smbpasswd
# 指定密码文件


[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S
# 为特殊共享目录,表示用户主目录,默认共享

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes
# 打印机机共享设置

# 自定义共享
[my gongxiang]
         comment = 我的共享
# 描述信息
         browseable = yes
# 是否允许查看此共享内容          
         path = /samba_server
  # 共享路径,写绝对路径       
         public = yes
# 是否允许匿名查看


valid users = user1
# 设置访问用户
valid users = group1
 # 设置访问组
readonly =yes
#只读
readonly = no
# 读写
writable = yes
# 读写
writable = no 
# 只读
write list = 用户名
# list既可以组名可也以用户,用逗号分隔,这是写的权限
write list = @组名
browseable = no
# 隐藏共享文件

writable yes 所有帐号都允许写入
writable no 所有帐号都禁止写入
write list 写入权限帐号列表 列表中的帐号允许写入


hosts allow = 192.172.168.0/24
# 字段定义允许访问的客户端
hosts deny =192.172.168.0/24,192.172.168.1.
# 字段定义禁止访问的客户端,主机后面有个点
# 当hosts deny 和hosts allow 同时出现而且冲突滴时候,hosts allow 生效

允许192.168.0.0 网段的IP 地址可以访问,但是192.168.0.100 及192.168.0.78 的主机禁止访问?就无法生效了我们可以使用EXCEPT 进行设置。
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78 表示允许192.168.0.0 网段IP 地址访问,但是192.168.0.100 和192.168.0.78 除外

2、安全模式

常见模式有两种:share 安全级别模式和user 安全级别模式
samba 服务器有share、user、server、domain 和AD活动目录 五种安全模式。
share、user、server这三项属于:Standalone Server Options 单台服务器选项

(1)share 安全级别模式 客户端登录samba 服务器,不需要输入用户名和密码就可以浏览samba 服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba 服务器的安全性。
(2)user 安全级别模式 客户端登录samba服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服 务器默认为此级别模式。
(3)server 安全级别模式 客户端需要将用户名和密码,提交到指定的一台samba 服务器上进行验证,如果验证出现错误, 客户端会用user 级别访问。
(4)domain 安全级别模式 如果samba 服务器加入windows 域环境中,验证工作服务,将由windows 域控制器负责,domain 级别的samba 服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows 域。
(5)ads 安全级别模式 当samba 服务器使用ads 安全级别加入到windows
域环境中,其就具备了domain 安全级别模式 中所有的功能并可以具备域控制器的功能。

3、用户设置

1、密码文件

samba 服务器发布共享资源后,客户端访问samba 服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。samba 服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd 中,在客户端访问时,将用户提交资料与smbpasswd 存放的信息进行比对,如果相同,并且samba 服务器其他安全设置允许,客户端与samba 服务器连接才能建立成功

3、samba 帐号并不能直接建立滴,需要先建立Linux 同名的系统帐号,先设置配置文件,在添加用户,此时会自动创建密码文件

把系统账号添加到samba服务器中
smbpasswd -a 用户名

[root@qianshuiliyu samba]# useradd user1;echo user1:123456|chpasswd 
[root@qianshuiliyu samba]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.

2、密码文件设置
在这里插入图片描述

[root@qianshuiliyu ~]# smbpasswd -a user1                       
New SMB password:
Retype new SMB password:
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Added user user1.

4、此时,会自动创建密码文件
在这里插入图片描述

4、实战

1、/samba_serve为共享路径,拷贝文件测试

[root@qianshuiliyu ~]# mkdir /samba_server
[root@qianshuiliyu ~]# cp /etc/passwd /samba_server/

2、修改配置文件
在这里插入图片描述
也可以设置哪个组进行访问

3、访问
在这里插入图片描述
4、此时不能新建,没有权限,但是可以下载
在这里插入图片描述
5、修改权限,两个权限,一个配置文件,一个目录本身的权限
修改之后
在这里插入图片描述

5、虚拟账号

创建系统用户,添加到samba服务账号中
1、配置文件设置
在这里插入图片描述

2、对应账号设置,此时用qianshuiuser进行登录

在这里插入图片描述

重启服务进行测试

3、登录
在这里插入图片描述
在这里插入图片描述

6、隐藏文件

在这里插入图片描述
查看
在这里插入图片描述
在访问后面加上名字就出来了
在这里插入图片描述

7、映射网络文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

8、关闭连接

windows关闭连接
使用命令行net use * /delete /y
在这里插入图片描述

三、独立配置文件

1、创建配置文件。必须包含用户名

[root@qianshuiliyu samba]# cp smb.conf smb.conf.user1
[root@qianshuiliyu samba]# ls
lmhosts  smb.conf  smb.conf.user1  smbpasswd  smbuser

2、在smb.conf配置文件中设置
在这里插入图片描述

表示samba 服务器读取/etc/samba/smb.conf.%U 文件,其中%U 代表
当前登录用户

3、 smb.conf.user1文件设置
设置共享内容,这个账号与其他账号都能访问,主配置文件设置隐藏,对这个账号是开放的(取消隐藏),两个账号都能访问;就是你干了什么我都能看见

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅水鲤鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值