Linux:Samba

SMB(Server Messages Block,服务器消息块)协议

yum install samba

Samba 服务程序中的参数以及作用

Linux:Samba

准备配置文件:

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

cat /etc/samba/smb.conf.bak | grep -v "^#" | grep -v "^;" | grep -v "^$" > /etc/samba/smb.conf

配置共享资源

创建共享资源的方法,表中的参数写入到 Samba 服务程序的主配置文件中,然后重启该服务即可。

Linux:Samba

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

pdbedit 命令用于管理 SMB 服务程序的账户信息数据库,格式为“ pdbedit [选项] 账户”。

用于 pdbedit 命令的参数以及作用

Linux:Samba

pdedit -a -u linuxprobe

2.创建用于共享资源的文件目录。

mkdir /home/database

chown -Rf linuxprobe:linuxprobe /home/database

semanage fcontext -a -t samba_share_t /home/database

restorecon -Rv /home/database

3.设置 SELinux 服务与策略, 使其允许通过 Samba 服务程序访问普通用户家目录。

getsebool -a | grep samba

setsebool -P samba_enable_home_dirs on

4.在 Samba 服务程序的主配置文件中,根据上表所提到的格式写入共享信息。

可以删除[homes]、[printers]

1 [global]
2 workgroup = MYGROUP
3 server string = Samba Server Version %v
4 log file = /var/log/samba/log.%m
5 max log size = 50
6 security = user
7 passdb backend = tdbsam
8 load printers = yes
9 cups options = raw
10 [database]
11 comment = Do not arbitrarily modify the database file
12 path = /home/database
13 public = no
14 writable = yes

5.Samba 服务程序的配置工作基本完毕。接下来重启 smb 服务(Samba 服务程序
在 Linux 系统中的名字为 smb)并清空 iptables 防火墙,然后就可以检验配置效果了。

systemctl restart smb

systemctl enable smb

iptables -F

service iptables save

 

Linux访问文件共享服务

安装客户端软件:yum install cifs-utils

在 Linux 客户端,按照 Samba 服务的用户名、密码、共享域的顺序将相关信息写入到一
个认证文件中。为了保证不被其他人随意看到,最后把这个认证文件的权限修改为仅 root 管
理员才能够读写:

vim auth.smb

username=smbuser
password=redhat
domain=MYGROUP

chmod 600 auth.smb

在 Linux 客户端上创建一个用于挂载 Samba 服务共享资源的目录,并把挂载信息
写入到/etc/fstab 文件中,以确保共享挂载信息在服务器重启后依然生效:

mkdir /database

vim /etc/fstab  

加入://192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0