兄弟连Linux(二十二)--Samba服务

本文详细介绍了Samba服务,包括其起源、作用、安装配置及应用。Samba作为Linux与Windows之间的桥梁,实现文件共享、打印服务等功能。通过安装samba、samba-client等包启动服务,并通过配置smb.conf文件设定共享权限。Samba服务的使用包括share和user级别,用户需设置相应的系统和Samba密码。此外,还讨论了Samba在内网环境下的优缺点及其与其他文件服务器的比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1Samba简介

1.1 数据共享方法         Windows和Linux方法无法在两个系统中通用

       Windows中最常见的是“网上邻居”。网上邻居使用的文件系统是CIFS(通用互联网文件系统)协议进行数据分享           无法跨路由、无法跨网段

       Linux中最常用的是NFS服务

1.2 Samba的由来

       在1991年Andrew tridgell为了实现Unix和Windows之间文件共享,开发了SMB(Server Message Block,服务消息块)文件系统

       由于SMB无法注册,就取名为Samba,热情的桑巴舞

1.3 Samba与NetBIOS协议

       IBM开发的NetBIOS协议是为了局域网内少数计算机进行通信的协议。

       Samba基于NetBIOS协议开发

       所以可以和Windows通信,但是只能在局域网通信

1.4 Samba主要应用

       文件共享

       打印服务器

       Samba登录时身份验证

       可以进行Windows的主机名解析

1.5 常见文件服务器的比较

服务名称

适用范围

服务器端

客户端

局限性

FTP

内网和公网

Windows、Linux

Windows、Linux

无法直接在服务器端修改数据

Samba

内网

Windows、Linux

Windows、Linux

只能在内网使用

NFS

内网和公网

Linux

Linxu

只能在Linux之间使用

2Sanba安装与端口

2.1 安装

       samba                                 主服务包

       samba-client                        客户端

       samba-common                    通用工具

       samba4-libs                         库

       samba-winbind                     Windows域映射

       samba-winbind-clients          域映射客户端

2.2 samba的守护进程

       smbd:提供对服务器中文件、打印资源的共享访问139 445

       nmbd:提供基于NetBIOS主机名称的解析 137 138

2.3 启动samba服务

       $ service smb start

       $ service nmb start

3Samba相关文件

3.1 常用文件

       /etc/samba/smb.conf      配置文件

       /etc/samba/lmhosts         对应的NetBIOS名与主机的IP的文件,一般samba会自动搜索(只对本级有效)

       /etc/samba/smbpasswd    samba密码保存文件,默认不存在,如果需要,手工建立

       /etc/samba/smbusers       用户别名,用于适用于不同操作系统中用户名习惯。需要配置文件中“username map”选项支持

3.2 常用命令

       testparm         检测配置文件是否正确

4、配置文件详解

4.1 配置文件结构

       Global Setting

              [global]          全局设置

       Share Definitions

              [homes]          用户目录共享设置

              [printers]        打印机共享设置

              [myshare]       自定义名称的共享目录设置

4.2 Global Setting

       workgroup             所在工作组名称

       server string           服务器描述信息

       log file                  日志文件位置

       max log size          日志文件的最大容量

      

       security                安全级别,可用值如下

              share       不需要密码可以访问

              user        使用系统用户,samba密码登录

              server      由其他服务器提供认证

              domain    由域控制器提供认证

4.3 Share Definitions

       comment        描述信息

       path               共享的路径

       guest ok         允许所有人访问,等同于public

       read only        所有人只读

       writable          所有人可写

       write list         拥有写权限的用户列表

       browseable     是否 浏览 可见

       valid users      指定可以访问的用户

4.4 常见的变量

       %v                samba的版本号

       %s                 任意用户都可以登录

       %m               client端的NetBIOSD主机名

       %L                服务器端的NetBIOS主机名

       %u                当前登陆的用户名

       %g                当前登录的用户组名

5Samba基本使用

5.1 share访问权限

5.1.1 share基本使用  

share权限访问

       客户端的使用

       user级别访问

       添加、删除、查看用户

5.1.2 配置文件修改

       [global]

              workgroup=MYGROUP

              server string=Samba Server Lamp

              log file=/var/log/samba/log.%m

              max log size=50

              security=share

              passdb backend=tdbsam

 

       Share Definitions

              [movie]

                     comment=study material

                     path=/study

                     browseable=yes

                     writable=yes

                     guest ok=yes

5.1.3 建立共享目录

       $ mkdir /study       建立共性目录

       $ chown nobody /study/

5.1.4 测试配置文件

       $ testparm

5.1.5 重启Samba服务

       $ service smb restart

       $ service nmb restart

5.2 客户端的使用

5.2.1 Windwos客户端访问

       网上邻居访问             

              \\192.168.44.4

5.2.2 Linux客户端访问

       $ smbclient -L 192.168.44.4                查看主机的共享资源

       $ smbclient //192.168.44.4/movie        访问共性目录

5.2.3 思考

       为什么我拥有writable=yes权限,为什么依然无法上传数据

5.3 user级别访问

5.3.1 配置文件修改

       [global]

              workgroup=MYGROUP

              server string=Samba Server Lamp

              log file=/var/log/samba/log.%m

              max log size=50

              security=user

              passdb backend=tdbsam

5.3.2 Share Definitions

       [homes]

              comment=Home Directories

              browseable=no

              writable=yes

       [pub]

              path=/public

              browseable=no(后果是什么)

              writable=yes

              writ list=sc

5.3.3 建立共享目录与测试配置文件

       $ mkdir /public

       $ testparm

5.3.4 重启Samba服务

       $ service smb restart

       $ service nmb restart

5.3.5 添加Samba用户

       $ smbpasswd –a 系统用户名                     注意,要给用户添加samba密码,该用户必须已经是系统用户

       FTP:使用系统用户,系统密码登录

       Samba:使用系统用户,Samba登录

5.3.4 权限设定

       如果要想访问与上传:

              Linux系统权限需要允许

              Samba服务权限也需要与允许

5.4 添加删除查看用户

5.4.1 添加samba用户

       注意用户必须已经是系统用户,才能添加为samba用户

       $ pdbedit -a -u 系统用户

或    $ smbpasswd –a 系统用户名

5.4.2 删除samba用户

       $ pdbedit -x -u 系统用户名

或    $ smbpasswd –x 系统用户

5.4.3 查看samba用户

       $ pebedit -L

6Samba访问实验

6.1 Samba共享目录权限

系统权限要对共享目录生效

       Samba服务器权限也会对共享目录声响

 

       在实际工作中,可能的共享目录众多、用户众多、权限交叉。建议使用系统权限控制共享目录权限,而不是使用samba权限。

6.2 举例

6.3 Samba共享目录

[教学]

       path=/share/jiaoxue

       browseable=yes

       writable=yes

[教务]

       path=/share/jiaowu

       browseable=yes

       writable=yes

6.4 Linux系统控制权限             ACL权限解决复杂权限问题

教学的权限

       $ setfacl -m u:jx:rwx /share/jiaoxue

       $ setfacl -m u:jw:rx /share/jiaoxue

       $ setfacl -m u:xz:rx /share/jiaoxue

       $ setfacl -m u:wl:rx /share/jiaoxue

教务的权限

       $ setfacl -m u:jw:rwx /share/jiaowu

       $ setfacl -m u:jx:rwx /share/jiaowu

       $ setfacl -m u:xz:rwx /share/jiaowu

       $ setfacl -m u:tg:rwx /share/jiaowu

7Samba其他使用

7.1 客户端挂载到本地使用

       $ mount –t cifs –o username=用户 原路径 目标路径

       例如

              $ mount –t cifs –o username=user1 //192.168.44.3pub /test

自动挂载

              $ vi /etc/fstab

              //192.168.44.3/pub /test cifs defaults,username=user1,password=126 1 2

7.2 Samba别名

       Linux的用户如root、nobody在Window中可能对应的用户是Administrator、guest用户

       Samba是跨平台的,所以用别名让他们可以通用

       别名文件

              $ vi /etc/samba/smbusers

                     原名=别名(多个别名 空格隔开)

                     user1=lamp1

       配置文件中开启别名

              $ vi /etc/samba/smb.conf

                     加入

                            username map=/etc/samba/smbusers

              重启,就可以使用别名访问samba了

7.3 总结

vsftp

       内网       外网              服务器:W    L     客户端:W    L

       用户:系统用户,系统密码

       缺点:不能直接在服务器上修改文件

Samba

       内网使用                     服务器:W    L     客户端:W    L

       用户:系统用户,samba密码

       缺点:只能在内网使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值