RedHat学习笔记40--Samba文件共享服务

本系列博客是笔者在学习刘遄的《Linux就该这样学》的笔记,个人觉得这是一本很好的书,很值得我们去学习。因为笔者是自学,可能有些问题了解的层面没有那么深,各位大牛在看到笔者写的内容有错漏,望指出并给出建议,感激不尽!



  1. Samba文件共享服务
# 1.配置好yum仓库,安装samba服务程序
yum install samba.x86_64

# 2.筛选没有注释的内容
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
cat /etc/samba/smb.conf

# 内容如下:
[global]
	workgroup = SAMBA			# 工作组名称;
	security = user				# 安全验证的方式,4种;
	# share:来访主机无需验证口令,方便,但安全性差;
	# user:需验证来访主机提供的口令后才可以访问,安全性提升;
	# server:使用独立的远程主机验证来访主机提供的口令(集中管理账户);
	# domain:使用域控制器进行身份验证;
	passdb backend = tdbsam		# 定义用户后台的类型,3种;
	# smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码;
	# tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户;
	# ldapsam:基于LDAP服务进行账户验证。
	printing = cups				
	printcap name = cups		
	load printers = yes			# 设置在Samba服务启动时是否共享打印机设备;
	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

RedHat学习笔记40--Samba文件共享服务RedHat学习笔记40--Samba文件共享服务

  1. 配置共享资源
    Samba服务程序主配置文件包括:全局配置参数、区域配置参数;
    全局配置参数:设置整体的资源共享环境,对里面的每一个独立的共享资源都有效;
    区域配置参数:设置单独的共享资源,仅对该资源有效。
设置Samba服务程序的参数及作用:
[database]:共享名称为database;
comment=Do not arbitraily modify the database file:警告用户不要随意修改数据库;
path=/home/database:共享目录为/home/database;
public=no:关闭"所有人可见";
writable=yes:允许写入操作。
# Tips:
# a.Samba服务默认使用用户口令认证模式;
# b.Samba服务的数据库要求账户必须在当前系统已经存在,
# 否则日后创建文件时将导致文件的权限属性混乱不堪,引发错误。

# 1.创建用于访问共享资源的账户信息;
# pdbedit命令:
# 含义:管理SMB服务程序的账户信息数据库;
# 格式:pdbedit [选项] 账户

# pdbedit参数:
-a 用户名:建立Samba账户;
-x 用户名:删除Samba账户;
-L :列出账户列表;
-Lv:列出账户详细信息的列表。

id hackerluo
pdbedit -a -u hackerluo

# 2.创建用于共享资源的文件目录。
# a.考虑文件读写权限问题;
# b.考虑应用于该目录的SELinux安全上下文的限制。
mkdir /home/database
chown -Rf hackerluo:hackerluo /home/database
semanage fcontext -a -t samba_share_t /home/database
restore -Rv /home/database

# 3.设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录;
getsebool -a | grep samba
setsebool -P samba_enable_home_dirs=on

# 4.在Samba主配置文件中写入共享信息
vim /etc/samba/smb.conf

# 内容:
[database]
	comment = Do not arbitrarily modify the database fiile
	path = /home/database
	public = no
	writable = yes

# 5.重启服务
systemctl restart smb.service
systemctl enable smb.service
iptables -F
service iptables save 

# 注:The service command supports only basic LSB actions 
# (start, stop, restart, try-restart, reload, force-reload, status). 
# For other actions, please try to use systemctl.

# 解决方案:
systemctl stop firewalld.service
systemctl mask firewalld.serviec
yum install iptables-services.x86_64
systemctl enable iptables
systemctl restart iptables
iptables -F
service iptables save

RedHat学习笔记40--Samba文件共享服务
RedHat学习笔记40--Samba文件共享服务
RedHat学习笔记40--Samba文件共享服务RedHat学习笔记40--Samba文件共享服务RedHat学习笔记40--Samba文件共享服务

  1. Windows访问文件共享服务
# 1.在Window系统-->运行(win+R):输入"\\服务器IP"
\\192.168.1.103
# 输入账号密码

# 2.可以正常共享文件

# 测试网络连通性:
# Linux下ping 192.168.1.102
# Windows下ping 192.168.1.103
# 如果Linux下可以ping通 Windows,Windows下不能ping通 Linux,
# 关闭Linux防火墙
systemctl stop firewalld.service

RedHat学习笔记40--Samba文件共享服务
RedHat学习笔记40--Samba文件共享服务

  1. Linux访问文件共享服务
    (因笔者的笔记本内存较低,同时运行不了两个虚拟机,该实验过几天补上。)
上一篇:虚拟机的redhat挂起后ifconfig没有inet的问题


下一篇:RedHat学习笔记41--NFS及autofs自动挂载服务