在centos8上安装samba

背景

在centos上安装了windows虚拟机,希望虚拟机可以访问centos文件内容。

前期准备

切换到root

安装、设置全程需要root权限,因此需要:

su

安装软件

如果系统没有安装,则安装samba和samba-client:

rpm -qa|grep samba
dnf install samba samba-client

将smb,nmb两项服务设定为开机自动

systemctl enable --now {smb,nmb}

TIPs:

  • samba-client对于搭建samba服务器不是必须的,但是它提供的实用程序会很有用,最好装一下;
  • smb是守护程序,它负责执行实际的传输和共享操作,而nmb则执行NetBIOS名称解析,从而允许资源在Windows上浏览网络时出现。

配置防火墙

方案一 保留防火墙服务

将服务添加到firewall白名单中:

firewall-cmd --permanent --add-service=samba

重新加载防火墙配置:

firewall-cmd --reload

确认配置正确:

firewall-cmd --list-services|grep samba

方案二 关闭防火墙

简单粗暴,直接关闭防火墙:

systemctl disable firewalld.service

配置匿名登陆账户

  1. 修改/etc/samba/smb.conf文件
vim /etc/samba/smb.conf
  1. 将[global]部分的workgroup修改为你的windows系统用户组名称(默认是WORKGROUP)
  2. 在[global]部分中添加下面一段话:
map to guest = bad user
  1. 在末尾添加你想要共享的目录及相关权限设置:
[share] 
path = /mnt/shared 
writeable = no
guest only = yes

意思是:将你的“/mnt/shared”目录在网络上共享为“share”名称的目录,该目录只能匿名访问,且只读。

  1. 重新启动守护程序
systemctl restart {smb,nmb}

TIPs:
最后你的smb.conf内容应该是:

[global]
workgroup = WORKGROUP
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = bad user

[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

[share]
path = /mnt/shared
writeable = no
guest only = yes

标记部分是修改过的内容。

配置现有账户以通过samba访问

  1. 修改/etc/samba/smb.conf文件
vim /etc/samba/smb.conf
  1. 新增或修改共享目录[shared]为如下:
[share] 
path = /home/shared 
guest ok = no
writeable = no
  1. 为账户rliu配置samba登陆密码:
smbpasswd -a sambauser

此密码仅在samba中有效,并不是系统登陆密码。
4. 重新启动守护程序

systemctl restart {smb,nmb}

配置samba专用账户

如果我想配置一个需要密码登陆的账户,但是我又不希望这个账户可以修改我的文件,那么可以配置一个samba专用账户。

  1. 建立一个访问账号sambauser
adduser -M sambauser -s /sbin/nologin

参数说明:
-M 不要自动建立用户的登入目录。
-s /sbin/nologin 指定用户登入后所使用的shell为空,即这个账户不允许登陆系统的。
2. 为该账号设置samba登陆密码:

smbpasswd -a sambauser
  1. 建立共享目录
[share] 
path = /home/shared
writeable = no 
guest ok = no
  1. 验证设置是否有效:
testparm

运行OK的结果如下:

[15:41 rliu@study ~]#testparm
Load smb config files from /etc/samba/smb.conf
Processing section “[printers]”
Processing section “[print$]”
Processing section “[Share]”
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions
5.为samba设置SELinux
5.1 方案一 关闭SELlinux(不建议)
修改SELinux配置文件

vim /etc/selinux/config

将SELINUX参数修改为permissive或disabled
如果修改成disabled则必须关机重启。

修改后的config内容如下

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

参数说明:
enforcing :强制模式,代表 SELinux 运作中;
permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制存取。
disabled :关闭,SELinux 并没有实际运作
5.2 方案二 为samba配置SELlinux
5.2.1 将/mnt/shared文件夹添加到samba的安全上下文中:

chcon -R -t samba_share_t /mnt/shared

参数说明:
-R, --recursive:递归处理所有的文件及子目录。
-t, --type=类型:设置指定类型的目标安全环境。
5.2.2 将规则添加到默认策略中:

semanage fcontext -a -t samba_share_t "/mnt/shared(/.*)?"

参数说明:
-a 添加默认安全上下文配置。
-t 设定默认安全上下文的类型
5.2.3 查看设置是否生效:

semanage fcontext -l | grep /mnt/shared

运行结果如下:

[15:57 root@study rliu]#semanage fcontext -l | grep /mnt/shared
/mnt/shared(/.*)? all files system_u:object_r:samba_share_t:s0

5.2.4 列出与samba相关的所有布尔值

semanage boolean -l|grep samba

默认结果的输入如下:

 [16:16 root@study rliu]#semanage boolean -l|grep samba
samba_create_home_dirs         (关    ,    关)  Allow samba to create home dirs
samba_domain_controller        (关    ,    关)  Allow samba to domain controller
samba_enable_home_dirs         (关    ,    关)  Allow samba to enable home dirs
samba_export_all_ro            (关    ,    关)  Allow samba to export all ro
samba_export_all_rw            (关    ,    关)  Allow samba to export all rw
samba_load_libgfapi            (关    ,    关)  Allow samba to load libgfapi
samba_portmapper               (关    ,    关)  Allow samba to portmapper
samba_run_unconfined           (关    ,    关)  Allow samba to run unconfined
samba_share_fusefs             (关    ,    关)  Allow samba to share fusefs
samba_share_nfs                (关    ,    关)  Allow samba to share nfs
sanlock_use_samba              (关    ,    关)  Allow sanlock to use samba
tmpreaper_use_samba            (关    ,    关)  Allow tmpreaper to use samba
use_samba_home_dirs            (关    ,    关)  Allow use to samba home dirs
virt_use_samba                 (关    ,    关)  Allow virt to use samba

5.2.5 激活以启用主目录共享

setsebool samba_enable_home_dirs=1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值