首页 > 其他分享 >配置Samba文件共享

配置Samba文件共享

时间:2023-12-24 16:00:45浏览次数:39  
标签:24 Samba 文件共享 xiaowang 配置 share samba root localhost

一、Samba简介

  • Samba文件共享服务是一种开源的软件,用于在Linux和Windows操作系统之间共享文件和打印机。它允许Windows客户端通过SMB/CIFS协议访问和共享Linux主机上的文件和打印机。
  • Samba可以作为文件服务器运行,让Windows用户能够像访问本地文件夹一样访问Linux主机上的文件夹。此外,Samba还允许Linux主机共享打印机,使Windows用户能够从他们的计算机中打印文件。
  • Samba还支持透明地传输文件和打印作业,以及文件和目录的访问控制。它可以与Active Directory集成,方便地管理和控制用户访问权限。
  • Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。

二、实验

2.1 实验拓扑

如下图,Win1-3主机与Linux主机接入同一网络,Net1网络已开启NAT服务,4台主机互通且可以访问Internet

配置Samba文件共享_Samba

2.2 实验需求

小王、小张和小李三人是同事,小李是项目主管,分别使用Win1、Win2和Win3主机办公,要求在Net1网络中配置Samba文件共享服务,为三人各自创建一个共享目录,对于小王和小张,要求对自己的共享目录拥有完整权限,而对其他人的共享目录拥有只读权限;对于小李,要求对三人的共享目录均有完整权限

2.3 实验规划

主机

主机名

IP地址

操作系统

Linux

localhost

172.16.0.100/24

Rocky Linux 8.9 (Green Obsidian)

Win1

N/A

172.16.0.10/24

Windows 10 Pro 21H1

Win2

N/A

172.16.0.20/24

Windows 10 Pro 21H1

Win3

N/A

172.16.0.30/24

Windows 10 Pro 21H1

2.4 配置共享资源

在Linux主机上配置Samba服务,通过软件仓库安装samba服务程序:

[root@localhost ~]# yum -y install samba

查看系统中samba的相关包:

[root@localhost ~]# rpm -qa | grep samba
samba-common-libs-4.18.6-2.el8_9.x86_64
samba-dcerpc-4.18.6-2.el8_9.x86_64
samba-common-tools-4.18.6-2.el8_9.x86_64
samba-common-4.18.6-2.el8_9.noarch
samba-client-libs-4.18.6-2.el8_9.x86_64
samba-libs-4.18.6-2.el8_9.x86_64
samba-ldb-ldap-modules-4.18.6-2.el8_9.x86_64
samba-4.18.6-2.el8_9.x86_64

查看samba主程序的配置文件:

[root@localhost ~]# rpm -qc samba-common
/etc/logrotate.d/samba
/etc/samba/lmhosts
/etc/samba/smb.conf			# 我们将要编辑这个配置文件
/etc/sysconfig/samba

Samba服务程序的主配置文件与Apache服务很相似,包括全局配置参数和区域配置参数。全局配置参数用于设置整体的资源共享环境,对里面的每一个独立的共享资源都有效。区域配置参数则用于设置单独的共享资源,且仅对该资源有效。创建共享资源的方法很简单,只要将下表中的参数写入到Samba服务程序的主配置文件中,然后重启该服务即可 

smb.conf配置文件的常用参数及作用示例:

参数

作用

[database]

共享名称为database

comment = Do not arbitrarily modify the database file

警告用户不要随意修改数据库

path = /home/database

共享目录为/home/database

public = no

关闭“所有人可见”

writable = yes

允许写入操作

force create mode = 0755

指定创建文件默认具有rwxr-xr-x权限

force directory mode = 0755

指定创建目录默认具有rwxr-xr-x权限

有关“/etc/samba/smb.conf”文件的更多配置参数详解参阅官方文档:

smb.conf — The configuration file for the Samba suite

下面我们按照需求进行配置,在Linux主机中分别创建共享目录“/share/xiaowang”、“/share/xiaozhang”和“/share/xiaoli”

[root@localhost ~]# mkdir -p /share/xiaowang
[root@localhost ~]# mkdir -p /share/xiaozhang
[root@localhost ~]# mkdir -p /share/xiaoli

分别创建用户xiaozhang、xiaowang和xiaoli,配置密码与用户名相同:

[root@localhost ~]# useradd xiaowang
[root@localhost ~]# echo 'xiaowang' | passwd --stdin xiaowang
Changing password for user xiaowang.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# useradd xiaozhang
[root@localhost ~]# echo 'xiaozhang' | passwd --stdin xiaozhang
Changing password for user xiaozhang.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# useradd xiaoli
[root@localhost ~]# echo 'xiaoli' | passwd --stdin xiaoli
Changing password for user xiaoli.
passwd: all authentication tokens updated successfully.

创建组“office”,作为三位用户的附加组:

[root@localhost ~]# groupadd office
[root@localhost ~]# usermod -G office xiaowang
[root@localhost ~]# usermod -G office xiaozhang
[root@localhost ~]# usermod -G office xiaoli

作为系统管理员,我希望三位用户能够看到和进入“/share”目录,但是不能够在“/share”目录下新建和删除文件,防止出现文件管理混乱和共享文件夹被删除的情况发生,所以可以将“/share”目录的所属组更改为“office”,并配置"/share"目录的权限为“0750”

[root@localhost ~]# chgrp -R office /share
[root@localhost ~]# chmod 0750 /share
[root@localhost ~]# ls -l /share
total 0
drwxr-xr-x. 2 root office 6 Dec 24 12:54 xiaoli
drwxr-xr-x. 2 root office 6 Dec 24 12:54 xiaowang
drwxr-xr-x. 2 root office 6 Dec 24 12:54 xiaozhang
[root@localhost ~]# ls -ld /share
drwxr-x---. 5 root office 53 Dec 24 12:54 /share

配置共享目录的SELinux安全上下文,如果SELinux已关闭,这一步可忽略:

[root@localhost ~]# chcon -R -t samba_share_t /share
[root@localhost ~]# ls -lZ /share
total 0
drwxr-xr-x. 2 root office unconfined_u:object_r:samba_share_t:s0 6 Dec 24 12:54 xiaoli
drwxr-xr-x. 2 root office unconfined_u:object_r:samba_share_t:s0 6 Dec 24 12:54 xiaowang
drwxr-xr-x. 2 root office unconfined_u:object_r:samba_share_t:s0 6 Dec 24 12:54 xiaozhang
[root@localhost ~]# ls -ldZ /share
drwxr-x---. 5 root office unconfined_u:object_r:samba_share_t:s0 53 Dec 24 12:54 /share

设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。执行getsebool命令,筛选出所有与Samba服务程序相关的SELinux域策略,根据策略的名称(和经验)选择出正确的策略条目进行开启即可:

[root@localhost ~]# 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
[root@localhost ~]# setsebool -P samba_enable_home_dirs on

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

pdbedit命令用于管理Samba服务程序的账户信息数据库,格式为“pdbedit [选项]账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后在执行修改密码、删除账户等操作时就不再需要该参数了。pdbedit命令中使用的参数以及作用如下表所示:

参数

作用

-a 用户名

建立Samba用户

-x 用户名

删除Samba用户

-L

列出用户列表

-Lv

列出用户详细信息的列表

[root@localhost ~]# pdbedit -a -u xiaowang
new password:此处输入该账户在Samba服务数据库中的密码
retype new password:再次输入密码进行确认
Unix username:        xiaowang
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2640330995-3986422831-213597558-1000
Primary Group SID:    S-1-5-21-2640330995-3986422831-213597558-513
Full Name:            
Home Directory:       \\LOCALHOST\xiaowang
HomeDir Drive:        
Logon Script:         
Profile Path:         \\LOCALHOST\xiaowang\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Sun, 24 Dec 2023 13:48:50 CST
Password can change:  Sun, 24 Dec 2023 13:48:50 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@localhost ~]# 
[root@localhost ~]# pdbedit -a -u xiaozhang
new password:
retype new password:
Unix username:        xiaozhang
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2640330995-3986422831-213597558-1001
Primary Group SID:    S-1-5-21-2640330995-3986422831-213597558-513
Full Name:            
Home Directory:       \\LOCALHOST\xiaozhang
HomeDir Drive:        
Logon Script:         
Profile Path:         \\LOCALHOST\xiaozhang\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Sun, 24 Dec 2023 13:49:46 CST
Password can change:  Sun, 24 Dec 2023 13:49:46 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@localhost ~]# 
[root@localhost ~]# pdbedit -a -u xiaoli
new password:
retype new password:
Unix username:        xiaoli
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2640330995-3986422831-213597558-1002
Primary Group SID:    S-1-5-21-2640330995-3986422831-213597558-513
Full Name:            
Home Directory:       \\LOCALHOST\xiaoli
HomeDir Drive:        
Logon Script:         
Profile Path:         \\LOCALHOST\xiaoli\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Sun, 24 Dec 2023 13:50:15 CST
Password can change:  Sun, 24 Dec 2023 13:50:15 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

下面修改“/etc/samba/smb.conf”配置文件:

[root@localhost ~]# vim /etc/samba/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.
#
# Note:
# SMB1 is disabled by default. This means clients without support for SMB2 or
# SMB3 are no longer able to connect to smbd (by default).

[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam

[share_xiaowang]
        comment = share for xiaowang
        path = /share/xiaowang
        public = yes
        writable = yes

[share_xiaozhang]
        comment = share for xiaozhang
        path = /share/xiaozhang
        public = yes
        writable = yes

[share_xiaoli]
        comment = share for xiaoli
        path = /share/xiaoli
        public = yes
        writable = yes

启动samba服务,并设置开机自启:

[root@localhost ~]# systemctl enable --now smb.service 
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.

防火墙放行samba服务:

[root@localhost ~]# firewall-cmd --add-service=samba --permanent 
success
[root@localhost ~]# firewall-cmd --reload
success

2.5 客户机登录验证

登录Win1主机,打开文件资源管理器,访问“\\172.16.0.100,输入小王的用户名和密码”

配置Samba文件共享_Linux_02

登录成功,查看到三个共享目录

配置Samba文件共享_文件共享_03

此处鼠标右键查看,发现没有新建文件的选项,也不能对共享目录进行删除

配置Samba文件共享_Samba_04

配置Samba文件共享_文件共享_05

进入“share_xiaowang”目录,新建一个文件,没有权限,访问被拒绝

配置Samba文件共享_Samba_06

此时我们需要在Linux主机上更改一下共享目录的拥有者:

[root@localhost ~]# ls -l /share/
total 0
drwxr-xr-x. 2 root office 6 Dec 24 12:54 xiaoli
drwxr-xr-x. 2 root office 6 Dec 24 12:54 xiaowang
drwxr-xr-x. 2 root office 6 Dec 24 12:54 xiaozhang
[root@localhost ~]# chown xiaowang /share/xiaowang
[root@localhost ~]# chown xiaozhang /share/xiaozhang
[root@localhost ~]# chown xiaoli /share/xiaoli
[root@localhost ~]# ls -l /share/
total 0
drwxr-xr-x. 2 xiaoli    office 6 Dec 24 12:54 xiaoli
drwxr-xr-x. 2 xiaowang  office 6 Dec 24 12:54 xiaowang
drwxr-xr-x. 2 xiaozhang office 6 Dec 24 12:54 xiaozhang

再次尝试新建一个文件,点击“Try again”

配置Samba文件共享_文件共享_07

返回Linux主机上查看文件属性,发现新建的文件并没有继承上级目录”/share“的所属组:

[root@localhost ~]# ls -l /share
total 0
drwxr-xr-x. 2 xiaoli    office  6 Dec 24 12:54 xiaoli
drwxr-xr-x. 3 xiaowang  office 53 Dec 24 14:13 xiaowang
drwxr-xr-x. 2 xiaozhang office  6 Dec 24 12:54 xiaozhang
[root@localhost ~]# 
[root@localhost ~]# cd /share/xiaowang
[root@localhost xiaowang]# ls -l
total 0
drwxr-xr-x. 2 xiaowang xiaowang 6 Dec 24 14:13 'New folder'
-rwxr--r--. 1 xiaowang xiaowang 0 Dec 24 14:12 'New Text Document.txt'

对共享目录添加SGID权限,实现新建文件继承拥有组:

[root@localhost share]# ls -l
total 0
drwxr-xr-x. 2 xiaoli    office  6 Dec 24 12:54 xiaoli
drwxr-xr-x. 3 xiaowang  office 53 Dec 24 14:27 xiaowang
drwxr-xr-x. 2 xiaozhang office  6 Dec 24 12:54 xiaozhang
[root@localhost share]# 
[root@localhost share]# chmod g+s xiaowang
[root@localhost share]# chmod g+s xiaozhang
[root@localhost share]# chmod g+s xiaoli
[root@localhost share]# ls -l
total 0
drwxr-sr-x. 2 xiaoli    office  6 Dec 24 12:54 xiaoli
drwxr-sr-x. 3 xiaowang  office 53 Dec 24 14:27 xiaowang
drwxr-sr-x. 2 xiaozhang office  6 Dec 24 12:54 xiaozhang

再次新建文件和目录查看属性,自动继承拥有组,且目录继承了SGID权限:

配置Samba文件共享_Linux_08

[root@localhost share]# ls -l xiaowang/
total 0
drwxr-xr-x. 2 xiaowang xiaowang 6 Dec 24 14:13 'New folder'
drwxr-sr-x. 2 xiaowang office   6 Dec 24 14:34 'New folder (2)'
-rwxr--r--. 1 xiaowang office   0 Dec 24 14:34 'New Text Document (2).txt'
-rwxr--r--. 1 xiaowang xiaowang 0 Dec 24 14:12 'New Text Document.txt'

如果小王进入小张的共享目录,误操作点击了新建文件,提示权限拒绝:

配置Samba文件共享_Samba_09

小张登录Win2主机,访问共享目录,尝试在自己的目录下新建一个文本文件,并在文件内编辑一些内容:

配置Samba文件共享_Samba_10

当小王访问小张的共享目录时,可以查看到小张的文件内容,而没有权限删除:

配置Samba文件共享_Linux_11

配置Samba文件共享_Samba_12

配置Samba文件共享_Samba_13

还有最后一个需求没有满足,需要让小李对小王和小张的共享目录有完整的权限,也就是可以对他们的文件进行新增、编辑和删除,可以用ACL权限来实现:

[root@localhost share]# setfacl -m u:xiaoli:rwx xiaowang/
[root@localhost share]# setfacl -m u:xiaoli:rwx xiaozhang/
[root@localhost share]# 
[root@localhost share]# getfacl xiaowang/
# file: xiaowang/
# owner: xiaowang
# group: office
# flags: -s-
user::rwx
user:xiaoli:rwx
group::r-x
mask::rwx
other::r-x

[root@localhost share]# getfacl xiaozhang/
# file: xiaozhang/
# owner: xiaozhang
# group: office
# flags: -s-
user::rwx
user:xiaoli:rwx
group::r-x
mask::rwx
other::r-x

小李登录win3主机,访问共享目录,清空小王目录下的文件,然后分别在各自的目录下新建一个文本文件,并编辑一些内容:

配置Samba文件共享_文件共享_14

配置Samba文件共享_文件共享_15

配置Samba文件共享_文件共享_16

配置Samba文件共享_Linux_17

到此,已满足实验需求。另外,对于一台Win主机访问同一个网络地址,Windows系统只会在第一次登录时询问用户名和密码,如果实验资源紧缺,希望在一台Win主机上验证多个用户的权限,可以在“cmd”命令行中输入“net use * /delete”删除访问记录:

配置Samba文件共享_Linux_18


参阅

samba.org/samba/docs/man/

第12章 使用Samba或NFS实现文件共享 | 《Linux就该这么学》

标签:24,Samba,文件共享,xiaowang,配置,share,samba,root,localhost
From: https://blog.51cto.com/min2000/8956053

相关文章

  • Linux网络配置
    在虚拟机上添加第二张网卡。使用以下命令查看网卡:[root@localhost~]#iplink1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNmodeDEFAULTgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:002:ens33:<BROADCAST......
  • samba
    samba安装yuminstall-ysamba创建共享资源用户创建一个系统用户,之后添加到samba数据库中,这个数据库添加要求用户存在当前系统中。#在Samba服务器上新建一个专用访问Samba服务账户useradd-s/sbin/nologinsmbuser创建共享资源文件目录#创建共享资源目录mkdir......
  • redis配置
    1、redis-server配置文件名&------------------以哪个配置文件启动,不知道配置文件名以默认配置启动(默认配置≠redis.conf),可以复制redis.conf启动过个redis服务。  配置:1、daemonizeno|yes------------配置redis服务为守护模式2、pidfile/var/run/redis_6379.pid---......
  • Swagger信息配置与常用注解
    转载自:https://blog.csdn.net/donglinjob/article/details/108550887 Swagger信息配置与常用注解一、Swagger 配置可以在项目中创建SwaggerConfig,进行配置文档内容。1配置基本信息Docket:摘要对象,通过对象配置描述文件的信息。apiInfo:设置描述文件中info。参数类型......
  • centos配置JAVA_HOME
    下载jdk从华为云镜像下载openjdk17curl-oopenjdk-17_linux-x64_bin.tar.gzhttps://mirrors.huaweicloud.com/openjdk/17/openjdk-17_linux-x64_bin.tar.gz%Total%Received%XferdAverageSpeedTimeTimeTimeCurrent......
  • 如何实现分布式环境下的动态配置管理?
    随着分布式系统和微服务架构的持续发展,对系统中存在的各种服务和资源进行统一治理已经成为系统架构设计过程中的一个基础要点。ShardingSphere作为一款分布式数据库中间件,同样集成了编制治理方面的功能。如何使用ShardingSphere所提供的编排治理功能进行展开,先讨论ShardingS......
  • day20 企业级监控大盘配置管理-Prometheus Operator部署管理 (7.11.1-7.12)
    一、企业级监控大盘配置管理(上)1、Grafana简述Grafana是一个开源的度量分析与可视化工具。提供查询、可视化、报警和指标展示等功能,能灵活创建图表、仪表盘等可视化界面。主要功能:可视化:提供多种可选择的不同类型的图形,能够灵活绘制不同样式,且还提供很多插件。动态仪表......
  • 三十九、配置 PE 与 CE 间部署 IS-IS 的 MPBGP MPLS VPN 实验
    1、实验拓扑图2、实验目的ce1与ce3为同一个公司,通过BGP网络实现互联;ce2与ce4为同一个公司,通过BGP网络实现互联。3、实验步骤3.1配置bgp网络3.1.1为BGP网络配置IGPisis200network-entity49.0001.0010.0100.1001.00//配置isis的网络实体名称area+system+netcost-stylewideis-leve......
  • Proxmox VE 超融合集群不停服务新增配置
    五个节点的ProxmoxVE超融合集群,创建了两个CephPool,一个是高速的Nvme存储池,另一个是大容量SATA存储池。现在需要将原有的SATA磁盘全部拔出来,换成高速Nvme磁盘。首先,先销毁由SATA机械盘组成的“hdd_pool”,选中它,然后点击按钮“销毁”。注意,必须先销毁CephPool,在销毁组成CephPool......
  • 奇迹如何配置登陆工具和网站文件
    一、文件组成:1、网站文件进级.exe-----------主程序。2、客户端目录.txt-----------用于保留客户端目录数据,供软件使用3、up.ini-----------客户端文件进级信息配置文件二、功能简介:使用此工具能生一份up.ini配置文件,可以实现登陆器自动从网站下载文件,并在客户端替代这些文件,实现客......