Linux网络文件共享服务之SAMBA 服务

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络文件共享服务之SAMBA 服务相关的知识,希望对你有一定的参考价值。

SAMBA 服务简介

  • SMB:Server Message Block 服务器消息块,IBM发布,
  • SMB最早是DOS网络文件共享协议,是Windows中的私有协议
  • CIFS:common internet file system,通用网络文件系统,微软基于SMB发布
  • SAMBA:1991年 Andrew Tridgell 实现 Windows和UNIX相通
  • 官方网站:http://www.samba.org/

SAMBA的功能:

  • 在Linux中模仿SMB共享
  • 共享文件和打印,实现在线编辑
  • 实现登录SAMBA用户的身份认证
  • 可以进行NetBios名称解析
  • 外围设备共享

Windows计算机网络管理模式:

  • 工作组WORKGROUP:计算机对等关系,帐号信息各自管理
  • 域DOMAIN:C/S结构,帐号信息集中管理,DC,AD

SAMBA 软件介绍

SAMBA相关软件包:

  • samba 提供smb服务器端
  • samba-client 客户端软件
  • samba-common 通用软件
  • cifs-utils smb客户端工具
  • samba-winbind 和AD相关

相关服务进程:

  • smbd 提供smb(cifs)服务 TCP:139,445
  • nmbd NetBIOS名称解析 UDP:137,138

主配置文件:

/etc/samba/smb.conf

帮助参看:

man smb.conf

语法检查:

testparm [-v] [/etc/samba/smb.conf]

客户端工具:

  • smbclient
  • mount.cifs

安装并启动服务器

dnf install samba
systemctl start smb
systemctl start nmb

SAMBA客户端工具

  • smbclient
  • UNC路径: Universal Naming Convention,通用命名规范,格式如下
    \\\\sambaserver\\sharename

使用smbclient 访问SAMBA服务器

smbclient -L instructor.example.com
smbclient -L instructor.example.com -U smb用户%password
#可以使用-U选项来指定用户%密码,或通过设置和导出USER和PASSWD环境变量来指定
smbclient //instructor.example.com/shared -U wang
>cd directory
>get file1
>put file2

Linux挂载CIFS文件系统

mount -o user=sun,password=sun //server/shared /mnt/smb

实现开机自动挂载cifs

cat /etc/fstab
#可以用文件代替用户名和密码的输入
//server/homes /mnt cifs credentials或cred=/etc/smb.txt 0 0
cat /etc/smb.txt
username=sun #或 user=wang
password=123456 #或 pass=password
chmod 600 /etc/smb.txt
#此方法需要安装cifs-utils包

管理SAMBA用户

实现samba用户说明

  • 包:samba-common-tools
  • 工具:smbpasswd pdbedit
  • 用户数据库:/var/lib/samba/private/passdb.tdb
    说明:samba用户须是Linux用户,建议使用/sbin/nologin

管理用户命令

  • 添加 samba用户:
smbpasswd -a <user>
pdbedit -a -u <user>
  • 修改用户密码:
smbpasswd <user>
  • 删除用户和密码:
smbpasswd -x <user>
pdbedit -x -u <user>
  • 查看samba用户列表:
pdbedit -L -v

创建samba用户范例

#注意不要用-r 设为系统用户,因为不会生成家目录
[root@centos8 ~]#useradd -s /sbin/nologin smb1
[root@centos8 ~]#useradd -s /sbin/nologin smb2
[root@centos8 ~]#useradd -s /sbin/nologin smb3
[root@centos8 ~]#smbpasswd -a smb1
[root@centos8 ~]#smbpasswd -a smb2
[root@centos8 ~]#smbpasswd -a smb3
[root@centos8 ~]#pdbedit -L

useradd -s /sbin/nologin -p 123456 smb1

查看samba服务器状态:

smbstatus

以上是关于Linux网络文件共享服务之SAMBA 服务的主要内容,如果未能解决你的问题,请参考以下文章

第十一章 网络文件共享服务之samba

linux之使用samba实现文件共享

linux架构学习第二十九天之samba文件共享服务

Linux之SAMBA文件共享服务器

Linux之Samba文件共享

Linux 服务器搭建之Samba服务