CentOS8 Samba 配置部署
CentOS8 Samba配置部署Samba简介Samba部署实践操作Samba服务程序主配置文件配置共享资源创建共享资源创建共享资源账户创建共享资源文件目录设置SELinux服务与策略重启Samba服务程序windows下访问文件共享服务linux下访问文件共享服务配置认证文件、挂载目录Samba简介Samba是一种基于SMB(server Messages Block)协议开发的一款文件共享软
CentOS8 Samba配置部署
Samba简介
Samba是一种基于SMB(server Messages Block)协议开发的一款文件共享软件。其可以在windows和linux,linux和linux中进行文件共享。
安装Samba:
[root@MyCentOS ~]# yum install samba
Samba部署实践操作
Samba服务程序主配置文件
samba服务程序主配置文件再/etc/samba/smb.conf
路径下。
----------------------------------------------samba服务程序主配置文件参数------------------------------------------------
[global] | 参数 | 作用 |
---|---|---|
workgroup=MYGROUP | 工作组名称 | |
server string =Samba Server Version %v | 服务器介绍信息,参数%v为显示SMB版本号 | |
log file=/var/log/samba/log.%m | 定义日志文件的存放位置与名称,参数%m为来访的主机名 | |
max log size=50 | 定义日志文件最大容量为50KB | |
security=user | 安全认证方式,共有4种 | |
#share:来访主机无需验证口令:方便、安全性差 | ||
#user: 需验证来访主机提供的口令后才能访问,提升安全性 | ||
#server:使用独立的远程主机验证来访主机提供的口令(集中管理) | ||
#domain:使用域控制器进行身份验证 | ||
passdb backend = tdbsam | 定义用户后台类型,共有三种 | |
#smbpasswd:使用smbpasswd命令为系统用户设置samba服务程序密码 | ||
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户 | ||
#ldapsam:基于LDAP服务进行账户验证 | ||
load printers=yes | 设置再samba服务启动时是否共享打印机设备 | |
cups options=raw | 打印机选项 | |
[home] | 共享参数 | |
comment = Home Directories | 描述信息 | |
browseable=no | 指定共享信息是否再网上邻居中可见 | |
writable=yes | 定义是否可以执行写入操作,与read only相反 | |
[printers] | 打印机共享参数 |
在CentOS8中安装的Samba服务程序中,文件如下所示。
[root@MyCentOS ~]# cd /etc/samba/
[root@MyCentOS samba]# ll
总用量 20
-rw-r--r--. 1 root root 20 4月 24 10:41 lmhosts
-rw-r--r--. 1 root root 706 4月 24 10:41 smb.conf
-rw-r--r--. 1 root root 11327 4月 24 10:41 smb.conf.example
[root@MyCentOS samba]# vim smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
如果想看Samba配置文件的注释信息,则可以查看smb.conf.example
文件,如果只想配置Samba服务器文件,则直接编辑smb.conf
文件即可。
配置共享资源
主配置文件包括全局配置参数和区域配置参数。全局配置参数用于设置整体资源共享环境,区域配置参数用于设置单独共享资源。
创建共享资源
将下表中的参数配置写入主配置文件中即可。
------------------------------------------用于设置Samba服务程序的参数以及作用---------------------------------------
参数 | 作用 |
---|---|
[database] | 共享名称 |
comment= don`t modify the database file | 警告用户不要随意修改数据库文件 |
path =/home/database | 共享目录为/home/database |
public=no | 关机所有人可见 |
writable=yes | 允许写入操作 |
在/etc/samba/smb.conf
中写入以下参数
[global]
workgroup = SAMBA <<<<工作组名称
security = user <<<<<验证来访主机口令
passdb backend = tdbsam <<<<创建数据库文件并使用pdbedit命令建立用户
printing = cups
printcap name = cups
load printers =no <<<<<不共享打印设备
cups options = raw
#自添加参数
server string =Samba Server Version %v <<<<服务器介绍信息版本号
log file = /var/log/samba/log.%m <<<<<访客日志文件
[database]
comment=don't modify the database file
path = /home/database
public = no
writable=yes
创建共享资源账户
用户口令认证模式,验证过程十分简单。
关键:
- 但只有在建立账户信息数据库之后才能使用用户口令认证模式。
- Samba服务层序数据库要求账户必须在当前系统中已经存在。
pdbedit 命令:
用于管理SMB服务程序的账户信息数据库
格式: pdbedit [选项] 账户
-------------------------------------------------------------pdbedit参数-----------------------------------------------------------
参数 | 作用 |
---|---|
-a 用户名 | 建立Samba账户 |
-x 用户名 | 删除Samba账户 |
-L | 列出账户列表 |
-Lv | 列出账户详细信息的列表 |
因为在创建账户之前,该账户必须是已经存在该服务器中的账户。所以为了测试,添加一个专门用来访问Samba服务的账户,而不允许该账户登录linux。
添加账户
[root@MyCentOS ~]# useradd -s /sbin/nologin smbuser <<<在Samba服务器上新建一个专用访问Samba服务账户
[root@MyCentOS ~]# pdbedit -a -u smbuser <<<<<<<以这个专用访问samba服务的用户创建共享资源账户
new password:
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3708679032-195000629-768076147-1000
Primary Group SID: S-1-5-21-3708679032-195000629-768076147-513
Full Name:
Home Directory: \\mycentos\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\mycentos\smbuser\profile
Domain: MYCENTOS
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 三, 06 2月 2036 23:06:39 CST
Kickoff time: 三, 06 2月 2036 23:06:39 CST
Password last set: 四, 13 8月 2020 17:18:50 CST
Password can change: 四, 13 8月 2020 17:18:50 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
创建共享资源文件目录
在创建时,不仅要考虑到文件读写权限问题,而且由于/home
目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SElinux安全上下文的限制。
- 在Samba服务程序主配置文件中,有关于SElinux安全上下文策略的详细说明,按照说明修改即可。
- 修改之后执行
restorecon
命令,使SELinux安全上下文立即生效
[root@MyCentOS ~]# mkdir /home/database <<<<<<因为我们在Samba配置文件中将共享文件夹命令为database
[root@MyCentOS ~]# chown -Rf smbuser:smbuser /home/database <<<<<,将文件归属设置为samba服务器中存在的专用来访问共享资源的用户
[root@MyCentOS ~]# semanage fcontext -a -t samba_share_t /home/database
[root@MyCentOS ~]# restorecon -Rv /home/database
Relabeled /home/database from unconfined_u:object_r:user_home_dir_t:s0 to unconfined_u:object_r:samba_share_t:s0
设置SELinux服务与策略
查看当下SELinux服务中与samba服务相关的策略
[root@MyCentOS ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
修改其中的samba_enable_home_dirs --> off
[root@MyCentOS ~]# setsebool -P samba_enable_home_dirs=on
重启Samba服务程序
重启Samba服务程序,并将该服务程序加入开机自启项中。
[root@MyCentOS ~]# systemctl start smb
[root@MyCentOS ~]# systemctl enable smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
windows下访问文件共享服务
在windows主机上访问linux下的Samba服务时,如果访问不成功,则还是老三样。首先查看防火墙,其次查看SELinux安全上下文策略。因为之前我们根据Samba配置文件中的注释信息设置了SELinux安全上下文,所以问题应该出现在防火墙上。
查看当下区域的防火墙状态:
[root@MyCentOS ~]# firewall-cmd --list-all
internal (active)
target: default
icmp-block-inversion: no
interfaces: ens33 virbr0
sources:
services: cockpit dhcpv6-client ftp mdns samba-client ssh tftp
ports: 69/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
从server参数中可知,没有开启Samba服务。所以应当将Samba服务加入到当下的的防火墙区域中,并使其立即生效。
[root@MyCentOS ~]# firewall-cmd --permanent --zone=internal --add-service=samba
success
[root@MyCentOS ~]# firewall-cmd --reload
success
在windows下直接搜索
输入在此前创建的Samba登录账户及密码
可以看到访问在samba共享资源服务器上存放的文件,可以尝试进行查看、写入、更改、删除文件等操作。
linux下访问文件共享服务
如过某个linux系统需要访问另以linux文件资源共享服务,则需要在该系统下安装支持文件共享服务的软件包(cifs-utils)。
在另一台linux系统中安装软件包
root@ubuntu:~# apt-get install cifs-utils <<<我的另一linux系统为ubuntu
配置认证文件、
在linux客户端中
- 按照Samba服务的用户名、密码、共享域顺序将相关信息写入到一个认证文件中
- 为了保证账号安全性,将该文件设置为只有root用户才能查看
根据之前创建的Samba共享资源账户配置
root@ubuntu:~# vim smbauth.smb
username=smbuser
password=smbuser
domain=SAMBA
设置文件权限
root@ubuntu:~# chmod 600 smbauth.smb
root@ubuntu:~# ll
-rw------- 1 root root 47 8月 14 15:04 smbauth.smb
挂载目录
在linux客户端中
- 创建一个用于挂载Samba服务共享资源目录
- 在
/etc/fstab
中写入挂载信息需要挂载的目录 挂载到本地的目录 软件服务 ...
root@ubuntu:~# mkdir /smb_database
root@ubuntu:~# vim /etc/fstab
#用户设置的挂载配置
//192.168.127.200/database /root/smb_database cifs credentials=/root/smbauth.smb 0 0
root@ubuntu:~# mount -a 《《挂载更新
访问共享资源
root@ubuntu:~# cd smb_database/
root@ubuntu:~/smb_database# ll
total 8
drwxr-xr-x 2 root root 0 8月 13 21:14 ./
drwx------ 5 root root 4096 8月 14 15:20 ../
-rwxr-xr-x 1 root root 25 8月 13 21:14 smb_test.txt*
root@ubuntu:~/smb_database# cat smb_test.txt
this is samba servicell!
更多推荐
所有评论(0)