Samba服务的部署

一. SMB概述

(1)Samba简介

Samba是在Linux和Unix系统上实现SMB协议的一个免费软件,提供CIFS(Common Internet File System)协议,
由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,
它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
主配置文件 : /etc/samba/smb.conf

二. Samba服务的部署
配置服务端:

1.安装samba服务

##1.安装samba服务软件
[root@service ~]# yum install -y samba samba-common 
##2.安装samba客户端软件;便于后续的测试(即该结点既为服务端又为客户端,这样可以节省一个节点资源)
[root@service ~]# yum install -y samba-client 
##3.开启服务
[root@service ~]# systemctl start smb
##查看火墙的状态
[root@service ~]# systemctl status firewalld

在这里插入图片描述

##4.关闭火墙
[root@service ~]# systemctl stop firewalld
##开机自动关闭火墙
[root@service ~]# systemctl enable firewalld
##查看selinux的状态
[root@service ~]# getenforce 
Enforcing
##5.更改selinux的状态为警告模式
[root@service ~]# setenforce 0
[root@service ~]# getenforce 
Permissive

在这里插入图片描述
2.管理samba用户

(1)添加samba用户

注意:添加的samba用户必须为本地真实存在的用户

[root@service ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@service ~]# id westos
id: westos: no such user

-a表示添加samb用户

[root@service ~]# smbpasswd -a student
New SMB password:    ##设定samb用户密码(与本地用户密码无关)
Retype new SMB password:
Added user student.
##添加samb用户报错,因为系统中没有该用户
[root@service ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Failed to add entry for user westos.
##创建用户
[root@service ~]# useradd westos
##添加samb用户成功
[root@service ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
##查看系统的samb用户
[root@service ~]# pdbedit -L
student:1000:student
westos:1001:
(2)删除samb用户

##-x表示删除
[root@service ~]# pdbedit -x student
[root@service ~]# pdbedit -L
westos:1001

在这里插入图片描述
配置客户端:

1.安装samba客户端软件

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

2.samba用户信息浏览

(1)匿名用户浏览

##-L表示列出信息

[root@client ~]# smbclient -L //172.25.254.102

在这里插入图片描述
(2)本地samba用户浏览

westos用户必须为samba用户

[root@client ~]# smbclient -L //172.25.254.134 -U westos

3.本地samba用户访问家目录

(1)以直接登陆的方式 访问本地samba用户家目录

##samba用户:westos 的家目录为 /westos
[root@client ~]# smbclient //172.25.254.134/westos -U westos
Enter westos’s password: ##输入samba用户:westos 的密码
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: > ls
. D 0 Sat Nov 24 10:39:27 2018
… D 0 Sat Nov 24 10:39:27 2018
.mozilla DH 0 Sat Nov 17 22:28:52 2018
.bash_logout H 18 Wed Jul 8 19:11:02 2015
.bash_profile H 193 Wed Jul 8 19:11:02 2015
.bashrc H 231 Wed Jul 8 19:11:02 2015

8706048 blocks of size 1024. 5706456 blocks available
##不能建立文件,因为这不是shell环境,不能使用shell命令
smb: > touch file1
touch: command not found
smb: > quit
在这里插入图片描述
(2)以挂载的方式 访问本地samba用户家目录

[root@client ~]# mount -o username=westos,password=westos //172.25.254.134/westos /mnt
[root@client ~]# df
[root@client ~]# cd /mnt
[root@client mnt]# ls
[root@client mnt]# touch file{1..3}
[root@client mnt]# ls
file1  file2  file3

##此时可在samba服务端的samba用户(westos)的家目录里查看到刚才建立的文件

[root@service ~]# ls -l /home/westos

4.samba访问控制

所有更改samba服务配置文件操作均为 即改即生效,也就是说无需重启samba服务

1.更改域名(Domain)

[root@service ~]# vim /etc/samba/smb.conf 

#################
89 workgroup = WESTOS ##更改samb用户的域名
##即改即生效,无需重启服务
在这里插入图片描述
[root@service ~]# smbclient -L //172.25.254.134
在这里插入图片描述

2.允许selinux访问samba服务

##查看selinux的状态
[root@service ~]# getenforce 
Permissive
##更改selinux的状态为强制模式
[root@service ~]# setenforce 1
[root@service ~]# getenforce 
Enforcing

在这里插入图片描述
##此时无法登陆本地samb用户
在这里插入图片描述
##查看解决方案
[root@service ~]# vim /etc/samba/smb.conf
##设定布尔值; 打开samba用户家目录的访问权限
在这里插入图片描述

[root@service ~]# setsebool -P samba_enable_home_dirs on
##此时便可以登陆本地samb用户
[root@service ~]# smbclient //172.25.254.134/westos -U westos

在这里插入图片描述

  1. samba用户访问的黑名单与白名单
@默认所有主机均可访问本地samba用户家目录
(1)设定白名单

[root@service ~]# vim /etc/samba/smb.conf

#################
hosts allow =172.25.254.134 #设定白名单;只允许134主机访问samb用户家目录
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
[root@client ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
(2)设定黑名单

[root@service ~]# vim /etc/samba/smb.conf
#################
; hosts allow = 172.25.254.134 #注释白名单
hosts deny = 172.25.254.134 #设定黑名单;不允许134主机访问samb用户家目录
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
[root@client ~]# smbclient //172.25.254.134/westos -U westos
在这里插入图片描述
5.Samba共享

(1)共享自己建立的目录

##1.建立目录
[root@service ~]# mkdir /westos
[root@service ~]# touch /westos/file{1…3}
##2.共享目录
[root@service ~]# vim /etc/samba/smb.conf
#################
322 [linux] #共享目录名称
323 comment = westos dir share #共享目录说明
324 path = /westos #共享目录的真实路径
在这里插入图片描述
##查看目录的安全上下文

[root@service ~]# ls -Zd /westos/

在这里插入图片描述
##3.修改安全上下文

[root@service ~]# semanage fcontext -a -t samba_share_t '/westos(/.*)?'

##4.刷新

[root@service ~]# restorecon -FvvR /westos/

[root@service ~]# ls -Zd /westos/

在这里插入图片描述
测试:

##匿名用户浏览;可查看到共享的linux目录

[root@service ~]# smbclient -L //172.25.254.134

在这里插入图片描述
(2)共享系统目录

[root@service ~]# ls /mnt

##1.在系统目录/mnt下建立文件

[root@service ~]# touch /mnt/westos{1..3}

##2.共享目录

[root@service ~]# vim /etc/samba/smb.conf 

################
326 [opt] ##共享目录名称
327 comment = mnt directory ##共享目录说明
328 path = /mnt ##共享目录真实路径
在这里插入图片描述
##查看selinux的状态

[root@service ~]# getenforce 

##查看安全上下文
[root@service ~]# ls -Zd /opt

##匿名用户访问
[root@service ~]# smbclient -L //172.25.254.134
##本地用户登陆
[root@service ~]# smbclient //172.25.254.134/opt -U westos
在这里插入图片描述
[root@service ~]# getsebool -a | grep samba
在这里插入图片描述

##3.设定布尔值;打开samaba服务可读权限
[root@service ~]# setsebool -P samba_export_all_ro on
##4.设定布尔值;打开samaba服务可写权限
[root@service ~]# setsebool -P samba_export_all_rw on
##查看samba服务的访问权限
[root@service ~]# getsebool -a | grep samba

在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/opt -U westos

在这里插入图片描述

6.samba共享目录权限的管理

(1).允许所有用户可写

@默认所有用户均不可写
[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
##1.允许所有用户可写
[root@service ~]# vim /etc/samba/smb.conf
#################
325 writable = yes #允许所有用户均可写
在这里插入图片描述
##此时仍然无法删除文件;此时与samba服务无关,只是因为对文件目录没有权限
##2.允许其他用户对该目录以及目录的内容有读写权限;注意:需要直接给目录权限而不是目录中的文件
[root@service ~]# chmod 777 /westos/
[root@service ~]# ll -d /westos
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(2).允许指定用户可写

[root@service ~]# vim /etc/samba/smb.conf
#################
325 ; writable = yes ##注释
326 write list = westos ##仅允许samba用户:westos可写
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(3).允许指定用户组可写

[root@service ~]# vim /etc/samba/smb.conf
#################
326 write list = +westos ##仅允许westos用户组可写(+等同于@)
在这里插入图片描述
##添加附加组westos到student用户中
[root@service ~]# usermod -G westos student
[root@service ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),1001(westos)
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U student
在这里插入图片描述
(4).仅允许指定用户能访问

[root@service ~]# vim /etc/samba/smb.conf
#################
326 ; write list = +westos
327 valid users = student ##仅允许student用户可访问
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U student
在这里插入图片描述
[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(5).仅允许指定用户组能访问

[root@service ~]# vim /etc/samba/smb.conf
#################
327 valid users = @student ##仅允许student用户组可访问
在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux -U westos
在这里插入图片描述
(6).隐藏目录,但不代表不可用

##默认可以查看到
[root@service ~]# vim /etc/samba/smb.conf
#################
328 browseable = no ##隐藏目录
在这里插入图片描述
测试:

[root@service ~]# smbclient -L //172.25.254.134 -U westos
在这里插入图片描述

(7).指定用户身份为超级用户root

[root@service ~]# vim /etc/samba/smb.conf
#################
325 writable = yes
329 admin users = student ##指定student用户身份为超级用户
在这里插入图片描述
[root@service ~]# smbclient //172.25.254.134/linux -U student
在这里插入图片描述
[root@service ~]# ls -l /westos
在这里插入图片描述
(8).允许匿名用户访问

@默认匿名用户不能访问
[root@service ~]# vim /etc/samba/smb.conf
#################
126 map to guest = bad user ##映射用户;将guest用户映射为无身份的用户
330 guest ok =yes ##允许匿名用户(无身份的用户)访问
在这里插入图片描述在这里插入图片描述
测试:

[root@service ~]# smbclient //172.25.254.134/linux
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题的意思是如何在Linux部署Samba服务。答案如下: 在Linux中部署Samba服务,并在网络上共享文件和打印机,可以按照以下步骤进行: 1. 安装Samba软件包 你需要安装Samba服务器软件包。对于Debian或Ubuntu Linux,可以使用以下命令来安装Samba软件包: sudo apt-get install samba 对于CentOS或Fedora Linux,可以使用以下命令来安装Samba软件包: sudo yum install samba 2. 配置Samba服务Samba服务器的配置文件是/etc/samba/smb.conf。您可以编辑该文件,以指定共享文件夹和打印机的位置和权限等信息。您可以使用vi或nano编辑器打开该文件,例如: sudo nano /etc/samba/smb.conf 可以向该文件添加以下行,以创建共享文件夹: [共享文件夹名] path = /路径/到/共享/文件夹 valid users = 用户名 writable = yes 还可以添加打印机共享的以下行: [打印机共享名] path = /var/spool/samba printable = yes guest ok = yes read only = yes create mask = 0700 3. 创建Samba用户 为了让用户访问共享文件夹和打印机,您需要创建Samba用户。您可以使用以下命令创建Samba用户: sudo smbpasswd -a 用户名 4. 重启Samba服务 您必须重启Samba服务使设置生效。对于Debian或Ubuntu Linux,可以使用以下命令重启Samba服务: sudo service smbd restart 对于CentOS或Fedora Linux,可以使用以下命令重启Samba服务: sudo systemctl restart smb 5. 测试Samba服务 在另一个计算机上可以使用Windows资源管理器或Linux的smbclient命令,访问Samba服务器上的共享文件夹和打印机。例如: smbclient //服务器名/共享文件夹名 -U 用户名 在连接成功后,输入您的密码即可访问共享文件夹。 以上就是在Linux中部署Samba服务器的过程。 ### 回答2: Samba是一个开放源码的软件,它允许在Linux操作系统上设置一个或多个Windows共享文件和打印机服务。利用Samba设置的共享文件和打印机服务可以从运行Windows操作系统的计算机上通过网络进行访问,这样可以方便地共享文件和打印机,增强工作协作和生产效率。 下面我们将详细介绍如何在Linux操作系统上部署Samba服务。 1.安装Samba软件 在Linux系统中安装Samba软件非常简单,只需在终端输入以下命令: sudo apt-get update sudo apt-get install samba Samba软件安装完毕后,需要创建一个共享文件夹,例如创建一个文件夹“share”,我们可以使用以下命令: sudo mkdir /home/username/share 其中username是指你的Linux系统中的用户名,这里可以根据自己的需要进行修改。 2.修改配置文件 通过以下命令打开Samba配置文件smb.conf: sudo nano /etc/samba/smb.conf 在配置文件中,找到以下内容: workgroup = WORKGROUP wins support = yes 将WORKGROUP改为您所在的工作组名称。接着,我们需要在文件的末尾添加以下内容来定义共享文件夹: [share] comment = Share Folder path = /home/username/share guest ok = yes read only = no create mask = 0755 其中,share是定义的共享文件夹名称,comment是备注信息,path是共享文件夹的路径,guest ok允许匿名用户访问,read only设置为不只读,create mask设置访问权限。 保存并退出编辑器。为了使更改生效,我们需要重新启动Samba服务,使用以下命令: sudo systemctl restart smbd 3.设置用户密码 为了保护共享文件夹的安全,我们需要为访问共享文件夹的用户设置密码。使用以下命令创建一个新的Samba用户: sudo smbpasswd -a new_user_name 其中new_user_name是新用户的名称。在输入此命令后,将提示您设置密码。您需要注意保护该密码,以防其泄漏。 4.测试共享文件夹 现在我们已成功安装和配置了Samba服务,并创建了一个共享文件夹,我们可以在Windows计算机上访问共享文件夹来测试该服务。打开Windows资源管理器,在地址栏中输入\ip_address_share_folder,并按“回车”键。其中,ip_address是指Linux计算机的IP地址,即可以在Linux系统终端输入ip addr 命令来获取。 此时,系统会要求您输入Samba服务的用户名和密码。如已成功设置Samba用户密码,您可以输入您为该用户设置的密码,并成功访问共享文件夹。 总结 通过以上步骤,您已经成功地在Linux系统上部署Samba服务,并创建了一个共享文件夹。这样,您与团队成员可以方便地共享文件和打印机,增强工作协作效率。 ### 回答3: Samba是一种开源软件,用于在Linux操作系统上实现文件和打印机的共享。它可以开放Linux操作系统的文件和打印机共享到Windows操作系统上,也可以开放Windows操作系统上的文件和打印机共享到Linux操作系统上。 在Linux上部署Samba服务,需按以下步骤进行: 1. 安装Samba软件包 在Linux上安装Samba软件包,可以使用apt-get或yum命令进行安装。例如,使用apt-get命令安装Samba软件包: sudo apt-get update sudo apt-get install samba 2. 配置Samba服务 Samba服务的配置文件是/etc/samba/smb.conf。配置文件中主要包含服务器的配置信息,如共享目录、访问权限和用户帐户等。 可以使用vim或nano编辑器打开配置文件,进行配置。 sudo vim /etc/samba/smb.conf 其中,每个共享目录需要以如下格式进行配置: [sharename] comment = Comment for Share path = /path/to/share browseable = yes read only = no guest ok = yes create mask = 0644 directory mask = 0755 其中,[sharename]表示共享目录名称,comment为对共享目录的描述,path为共享目录的路径,browseable为是否可浏览,read only为是否只读,guest ok为是否允许访客访问,create mask为新文件默认权限,directory mask为新目录默认权限。 3. 创建Samba用户 在Samba服务中,需要为每个要访问共享目录的用户创建Samba帐户。这可以通过smbpasswd命令完成。 例如,创建一个用户名为sambatest的Samba帐户: sudo smbpasswd -a sambatest 输入密码后,即创建成功。 4. 重启Samba服务 完成以上配置后,需要重启Samba服务使之生效。 sudo service smbd restart 5. 访问Samba共享目录 在Windows操作系统中,可以使用文件资源管理器访问共享目录。在文件资源管理器中,输入服务器IP地址或名称,出现对话框让用户输入Samba帐户和密码。在输入正确的帐户和密码后,即可访问共享目录。 总的来说,部署Samba服务可以实现Linux和Windows之间的文件和打印机的共享,带来了很大的便利。如果需要更加详细的配置和定制,可以参考Samba官方文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值