linux的samba服务部署

本文详细介绍了SMB(Server Message Block)服务的配置与使用,包括安装与启动服务、用户管理、配置文件编辑、内核参数调整、共享路径设置及权限控制等。深入探讨了如何实现多用户访问控制及安全上下文匹配,确保网络共享的安全与高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#################
1.SMB的用处和怎么登陆
#################
用处是通过存储分离保护服务器的稳定
用法
server为服务器
172.25.254.128
设置好yum源
安装samba服务
yum install samba samba-common samba-client.x86_64 -y

在这里插入图片描述
开启服务
在这里插入图片描述
关闭火墙
在这里插入图片描述
关闭内核
在这里插入图片描述
添加一个用户
在这里插入图片描述
添加用户身份
在这里插入图片描述

smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.

查看有什么用户
pdbedit -L

在这里插入图片描述
怎么删除
smbpasswd -x westos
为了实验需要删除后重新添加westos

在这里插入图片描述
客户端为desktop
172.25.254.228
配置好yum源

在这里插入图片描述
关闭火墙
在这里插入图片描述
关闭内核
在这里插入图片描述
安装samba服务
yum install samba-client.x86_64 -y

在这里插入图片描述
匿名访问
smbclient -L //172.25.254.128
不输入密码直接回车

在这里插入图片描述
直接访问
smbclient //172.25.254.128/westos -U westos
put上传服务端的/home/westos/文件到westos下
!ls能查看服务端/home/westos下的文件

在这里插入图片描述
挂载到/mnt下访问能在客户端创建文件保存到服务端
mount -o username=westos,password=westos //172.25.254.128/westos /mnt/

在这里插入图片描述
此时在客户端/mnt下创建的文件保存在服务端的/home/westos下
在这里插入图片描述
在服务端/home/westos/下查看文件
在这里插入图片描述
开机自动挂载,修改/etc/fstab文件
在这里插入图片描述

#############################
2.怎么设置smb配置文件和内核允许访问
#############################
打开配置文件
vim /etc/samba/smb.conf
更改组

在这里插入图片描述
记得重启服务
systemctl restart smb.service
打开内核
尝试登陆,此时无法登陆

在这里插入图片描述
conf文件的30行有提示
在这里插入图片描述
按照提示打开开关
setsebool -P samba_enable_home_dirs on

在这里插入图片描述
打开配置文件
在任意位置写下
hosts allow = 172.25.254.228
意思是允许某个ip登陆
这就是白名单

在这里插入图片描述
重启服务后在客户端登陆
在这里插入图片描述
任意位置写下
意思是允许某个ip不能登陆
hosts deny = 172.25.254.228
这就是黑名单

在这里插入图片描述
重启服务后在客户端登陆
在这里插入图片描述
##################
3.设置共享路径
##################
打开smb.conf文件
[linux]
324 comment = westos dir share
325 path = /westos

在这里插入图片描述
退出保存后重读服务
在根下创建目录westos
mkdir /westos

在这里插入图片描述
登陆后进不去
原因是内核检查安全上下文不匹配
修改westos的安全上下文后就能进去了
semanage fcontext -a -t samba_share_t '/westos(/.*)?'

在这里插入图片描述
restorecon -RvvF /westos/
查看安全上下文

在这里插入图片描述
smbclient //172.25.254.128/linux -U westos
在这里插入图片描述
但有一种情况就是我们设置共享路径为系统文件,
由于有别的服务会匹配原安全上下文我们不能随意修改
326
327 [opt]
328 comment = opt
329 path = /mnt

在这里插入图片描述
退出保存后重读服务
匿名用户登录失败后能显示我们添加的目录
smbclient -L //172.25.254.128

在这里插入图片描述
smbclient //172.25.254.128/opt -U westos
发现登陆进不去,原因是/mnt下的安全上下文不匹配
我们需要修改内核开关,使服务端的内核开启samba所有的读权限
setsebool -P samba_export_all_ro on

在这里插入图片描述
smbclient //172.25.254.128/opt -U westos再次登陆
此时无法上传文件原因是这个目录下写文件的权限没有开启

在这里插入图片描述
########################
4.设置用户在目录下的权限
########################

配置/etc/samb/sam.conf

126 map to guest = bad user
[linux]
324 comment = westos dir hare
325 path = /westos
326 writable = yes
327 ; write list = @westos
328 ; valid users = +student
329 browseable = yes
330 ; admin users = student
331 guest ok = ye

map to guest = bad user
设置匿名用户以什么身份登陆

设置在此目录下可写
writable = yes

设置在此目录下可写的组
write list = @westos

设置只能登陆此目录的用户身份
valid users = +student

设置能在此目录下浏览就是ls
browseable = yes

设置此目录下什么身份的用户有root权限
admin users = student

设置允许匿名用户登陆
guest ok = yes
于此同时设置126行匿名以什么身份登陆
(按照规范应该写在126行,但写在别的地方也能生效)**

(1)测试匿名登陆上传文件的效果
在这里插入图片描述
登陆命令为
smbclient //172.25.254.128/linux
上传一个文件anaconda-ks.cfg 有报错
这个错误是因为服务端/westos这个目录的权限不够

在这里插入图片描述
修改权限为777
在这里插入图片描述
修改后再次登陆上传
在这里插入图片描述
在服务端查看文件权限,nobody意思是匿名用户
在这里插入图片描述
(2)测试组可写权限
添加一个组
westos属于这个组
在这里插入图片描述
设置为组可写write list = @westos
完成后重启服务

在这里插入图片描述
此时匿名用户无法上传文件
在这里插入图片描述
此时属于westos组的westos能在此目录写文件(上传和删除)
在这里插入图片描述
(3)测试valid users = +student只有student能登陆
设置配置文件

在这里插入图片描述
添加用户student的身份
在这里插入图片描述
用westos登陆被拒绝
用student登陆成功

在这里插入图片描述
(4)设置某用户在这个目录下有root权力
表现方式为上传文件的所有人为root

在这里插入图片描述
以westos的身份上传文件
在这里插入图片描述
查看上传的文件的所有人
在这里插入图片描述

################
5.多用户不交叉登陆
################
在客户端以westos身份创建文件后客户端的普通用户student可以不通过认证查看文件,这不合理,我们需要设置一个认证方式
在服务端只保留浏览和写权限
在这里插入图片描述
加入一个用户身份student
在这里插入图片描述
在客户端
yum install cifs-utils

在这里插入图片描述
设置客户端root以westos的身份登陆
vim /root/smbpass
username=westos
password=westos

在这里插入图片描述
chmod 600 /root/smbpass
在这里插入图片描述
挂载登陆服务端
mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.128/linux /mnt/
移动到mnt下
cd /mnt
创建root文件
touch root
切换到student
su - student
移动到mnt
cd /mnt
查看文件发现被拒绝
ls
在这里插入图片描述
为客户端的student添加在服务端的身份,
此时的student是服务端的student身份,
密码为服务端设置的密码
cifscreds add -u student 172.25.254.128
查看文件
ls
如果密码错误需要清除之前登陆的帐号
cifscreds clearall

在这里插入图片描述

### 回答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、付费专栏及课程。

余额充值