当前位置:首页 > 原版系统 > CentOS > 正文内容

CentOS7.9 安装配置 samba

曾经1年前 (2023-04-15)CentOS2182

概述

1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以“SMB是没有意义的字符”为由而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择

安装samba

可直接通过软件仓库来安装samba,顺带再安装一个samba-client软件包,这是一会儿用于测试共享目录的客户端程序

yum install samba samba-client



配置文件

打开Samba的主配置文件,默认参数并不多,只有37行。其中第5~8行参数中所提到的cups的全称为Common UNIX Printing System(通用UNIX打印系统)是用于打印机或打印服务器的,当前我们没有打印机设备所以直接删除。第17~22行代表共享每位登录用户的家目录内容,虽然在某些情况下这可以更方便地共享文件,但这个默认配置存在安全隐患,建议不要共享,将其删除掉。第24~29行是用SMB协议共享本地的打印机设备,方便局域网内的用户远程使用打印机设备,也将其删除,最后的第31~37行依然为共享打印机设备的参数,同样删除。当然为了避免在工作中使用到了打印机服务而不知如何配置,下面对配置文件进行注释说明:

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

[root@stache31 ~]# cd /etc/samba/
[root@stache31 samba]# ls
lmhosts  smb.conf  smb.conf.example
[root@stache31 samba]# cp smb.conf smb.conf.bak
[root@stache31 samba]# vi smb.conf
      1 # See smb.conf.example for a more detailed config file or
      2 # read the smb.conf manpage.
      3 # Run 'testparm' to verify the config is correct after
      4 # you modified it.
      5 
      6 [global] #全局配置
      7         workgroup = SAMBA #工作组名称
      8         security = user #安全验证方式
      9         server string = Samba Server Version %v #samba服务器的描述信息
     10         passdb backend = tdbsam #表示存储共享帐户的文件类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本samba 密码文件)
     11 
     12         printing = cups #打印服务协议
     13         printcap name = cups #打印服务名称
     14         load printers = yes #是否加载打印机
     15         cups options = raw #打印机的选项
     16 
     17 [homes] #此处用来设置 linux 用户的默认共享,对应用户的家目录,当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的家目录中
     18         comment = Home Directories #描述信息
     19         valid users = %S, %D%w%S #可用账户
     20         browseable = No #指定共享信息是否在“网上邻居”可见
     21         read only = No #是否只读
     22         inherit acls = Yes #是否继承访问控制列表
     23 
     24 [printers] #打印机共享设置
     25         comment = All Printers #描述信息
     26         path = /var/tmp #共享路径
     27         printable = Yes #是否可打印
     28         create mask = 0600 #文件权限
     29         browseable = No #指定共享信息是否在“网上邻居”可见
     30 
     31 [print$]
     32         comment = Printer Drivers
     33         path = /var/lib/samba/drivers
     34         write list = @printadmin root #可写入文件的用户列表
     35         force group = @printadmin #用户组列表
     36         create mask = 0664 #文件权限
     37         directory mask = 0775 #目录权限

# 其它参数
writable = Yes #允许写入操作
guest ok = No #表示设置是否所有人均可访问共享目录
public = No #表示设置是否允许匿名用户访问
write list #表示设置允许写的用户和组,组要用 @ 表示,例如 write list = root,@root
valid users #设置可以访问的用户和组,例如 valid users = root,@root
hosts deny #设置拒绝哪台主机访问,例如 hosts deny = 192.168.10.100
hosts allow #设置允许哪台主机访问,例如 hosts allow = 192.168.10.200


配置文件中的 security 参数代表用户登录Samba服务时采用的验证方式,总共有4种可用参数:

  • share:代表主机无须验证密码,这相当于vsftpd服务的匿名公开访问模式,比较方便,但安全性很差

  • user:代表登录Samba服务时需要使用账号密码进行验证,这是默认的验证方式,最为常用

  • domain:代表通过域控制器进行身份验证,用来限制用户的来源域

  • server:代表使用独立主机验证来访用户提供的密码,这相当于集中管理账号,并不常用

在最早期的RHEL/CentOS系统中,Samba服务使用的是PAM(可插拔认证模块)来调用本地账号和密码信息,后来在5、6版本中替换成了用smbpasswd命令来设置独立的Samba服务账号和密码。到了RHEL 7/8版本,则又进行了一次改革,将传统的验证方式换成使用tdbsam数据库进行验证。这是一个专门用于保存Samba服务账号密码的数据库,用户需要用pdbedit命令进行独立的添加操作



配置共享

1、Samba配置文件包括全局配置参数和区域配置参数。全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。创建共享的方法很简单,只要区域配置写入到Samba服务程序的主配置文件中,然后重启该服务即可,如下我们增加一个共享名为 demo 的共享

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

# 精简后的配置文件如下
vi smb.conf
[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam

[demo]
        comment = demo dir  #comment是对该共享的描述,可以是任意字符串
        path = /home/samba/demo #共享目录的路径
        public = no #关闭“所有人可见”
        writable = yes #允许写入操作



2、创建用于访问共享的账户信息,Samba服务程序默认使用的是用户密码认证模式(user)这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且认证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户密码认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误

# 创建系统用户,该用户无需登录所以通过 -M 指定不创建家目录,并且指定shell为 /sbin/nologin
[root@stache31 ~]# useradd -M -s /sbin/nologin demo

# 在Samba数据库中创建 demo 用户
[root@stache31 ~]# pdbedit -a -u demo
new password: #输入用户密码
retype new password: #再次输入密码
Unix username:        demo
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-4038020518-2638332441-3945857163-1001
Primary Group SID:    S-1-5-21-4038020518-2638332441-3945857163-513
Full Name:            
Home Directory:       \\stache31\demo
HomeDir Drive:        
Logon Script:         
Profile Path:         \\stache31\demo\profile
Domain:               STACHE31
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Wed, 13 Apr 2022 16:59:31 CST
Password can change:  Wed, 13 Apr 2022 16:59:31 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

pdbedit -L #显示用户列表
pdbedit -x test #删除指定用户


3、创建共享目录

[root@stache31 ~]# mkdir -p /home/samba/demo
[root@stache31 ~]# chown -R demo:demo /home/samba/demo/



4、启动服务

# 测试配置文件是否有误
[root@stache31 ~]# testparm -s

#启动服务
[root@stache31 ~]# systemctl restart smb
[root@stache31 ~]# systemctl enable smb


扫描二维码推送至手机访问。

版权声明:本文由珍惜发布,如需转载请注明出处。

本文链接:https://www.zp68.com/article/46.html

分享给朋友:

“CentOS7.9 安装配置 samba” 的相关文章

CentOS 7.9.2009_isos_x86_64 ISO原版纯净系统

CentOS 7.9.2009 isos x86 64文件:CentOS-7-x86_64-DVD-2009.isoSHA256:e33d7b1ea7a9e2f38c8f693215dd85254c3a4fe446f93f563279715b68d07987 下载地址http://mirr...

CentOS 挂载硬盘 XFS无法读取超级块

挂载硬盘:mount -t xfs /dev/sdb1 /data1提示:无法读取超级块解决办法:xfs_repair /dev/sdb1 -L再挂载:mount -t xfs /dev/sdb1 /...

CentOS 7 安装VNC 超级详细

CentOS 7 安装VNC 超级详细

一、安装图形界面1.安装图形用户界面接口X Window System安装命令:yum groupinstall "X Window System"卸载命令:yum groupremove "X Wi...

CentOS7挂载4TB磁盘

[root@localhost/]#parted /dev/sdb #选择硬盘 (parted)mklabel gpt   #转换gpt分区 (parted)mkpart prinmary 1 -1&nbs...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。