本系列博客是笔者在学习刘遄的《Linux就该这样学》的笔记,个人觉得这是一本很好的书,很值得我们去学习。因为笔者是自学,可能有些问题了解的层面没有那么深,各位大牛在看到笔者写的内容有错漏,望指出并给出建议,感激不尽!
- 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
- 配置共享资源
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
- 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
- Linux访问文件共享服务
(因笔者的笔记本内存较低,同时运行不了两个虚拟机,该实验过几天补上。)