主题
Samba服务器的安装
安装Samba
检查rpm包管理工具是否存在
bash
rpm --version1
显示如上,说明当前电脑中已安装了rpm包管理工具
检查Samba软件是否已经安装
bash
# 检查Samba软件包是否存在
rpm -qa | grep samba1
2
2
什么也不显示,说明当前没有安装Samba
安装Samba
bash
yum -y install samba samba-client samba-common #回车开始安装,等待安装完成1
安装完后再次检查是否安装好
bash
rpm -qa | grep samba
# 使用whereis samba也可以查看它是否安装及安装文件的位置1
2
2

如上图则表示安装完成
匿名模式
即不需要输入用户名密码即可登录
配置静态IP
关闭防火墙和SELinux
bash
firewall-cmd --state # 查看防火墙状态
# 如果是running,表示防火墙开启,那么运行以下命令
systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service # 设置开机禁用防火墙
# 临时关闭SELinux,不关会导致只能看见文件夹名字,但不能查看文件
setenforce 0
# 永久关闭SELinux
vi /etc/selinux/config
# 将SELinux=enforcing 改成如下
SELinux=disabled1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
建立共享目录
bash
mkdir /home/share
cd /home/share
mkdir xsx
touch abc.txt # 并使用vi编辑器在其中写入“654321”1
2
3
4
2
3
4
查看Samba的配置文件
bash
cd /etc/samba # 进入到samba配置文件所在的路径
ll #查看该文件夹下有哪些文件1
2
2

可以看到有如上三个文件,其中smb.conf.example是提供给我们的一个完成配置文件的示例
备份原有的配置文件
bash
# 把原来的smb.conf文件改名称smb_bk.conf,作为备份保留
mv smb.conf smb_bk.conf1
2
2

应用新的配置文件
bash
cp smb.conf.example smb.conf # 把smb.conf.example复制并作为新的smb.conf文件1

修改samba配置文件
bash
vi smb.conf1
改成如下图
即注释passdb backend = tdbsam
新增map to guest = Bad User

bash
# 在Share Definitions中新增如下代码
[share]
comment = XianYi samba share
path = /home/share
public = yes
readonly = yes1
2
3
4
5
6
2
3
4
5
6
即如下图

启动Samba服务
bash
# systemctl status smb.service # 可是使用该命令检测smb是否开启
systemctl start smb
systemctl enable smb # 设置开启启动1
2
3
2
3
在windows的文件夹上的路径中输入 \192.168.38.137,要改成你自己的ip地址,可以用ifconfig或者ip addr show来查看,斜杠看清楚(用回车键上方的)
如果弹出一个用户名密码输入框,随便输个用户名即可进入
认证模式
删除之前的smb.conf文件
bash
cd /etc/samba
rm smb.conf1
2
2
新建用户和组
bash
groupadd dep
useradd -g dep depadmin
useradd -g dep depuser11
2
3
2
3
新建目录
bash
cd /home
mkdir dep
chown depadmin:dep dep # 把dep文件夹的所属用户改为depadmin,所属组改为dep
chmod 770 dep #修改dep文件夹的权限1
2
3
4
2
3
4
建立Samba账号
passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam: 该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库 可以使用smbpasswd –a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的 参数很多,我们列出几个主要的。
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。
3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”
passdb backend = tdbsam时,正常你应该用这个
bash
pdbedit -a depadmin # 设置密码为88888888
pdbedit -a depuser1 # 设置密码为999999991
2
2
/var/lib/samba/private下的passdb.tdb和secrets.tdb是samba文件的相关密码文件
passdb backend = smbpasswd时
bash
smbpasswd -a depadmin # 设置密码为88888888
smbpasswd -a depadmin # 设置密码为9999999991
2
2
/var/lib/samba/private下的smbpasswd是samba文件的相关密码文件
可以手动指定密码保存位置
bash
security = user
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
#指定samba密码保存在/etc/samba/smbpasswd,而不是 默认的/var/lib/samba/private/smbpasswd中1
2
3
4
2
3
4
应用新的配置文件
bash
cp smb.conf.example smb.conf # 把smb.conf.example复制并作为新的smb.conf文件1

修改smb.conf配置文件
在最后增加如下
bash
[dep]
comment = dep samba server
path = /home/dep
public = no
browseable = yes
writable = yes
valid users = @dep1
2
3
4
5
6
7
2
3
4
5
6
7

启动Samba服务
bash
# systemctl status smb.service # 可是使用该命令检测smb是否开启
systemctl start smb
systemctl enable smb # 设置开启启动1
2
3
2
3
在windows的文件夹上的路径中输入 \192.168.38.137,会弹出一个用户名密码输入框
用户名:depadmin
密码:88888888
或
用户名:depuser1
密码:99999999

参考资料:https://blog.csdn.net/qq_47529104/article/details/122828574
以上认证登录是可以修改文件的如果不能创建和修改文件,是因为在linux目录中该文件夹的权限设置需要放开一下
其他:
清除Windows客户端的Samba缓存
当Samba服务的配置(如用户权限)发生变化时,Windows客户端可能会因为缓存了旧的配置信息而无法立即应用新的设置。这时,可以通过以下步骤来清除Windows客户端的Samba缓存:
打开命令提示符:在Windows系统中,打开“命令提示符”或“PowerShell”。
查看当前缓存的连接:输入
net use命令,这将列出当前所有缓存的Samba连接。删除特定的缓存连接:如果只想删除特定的Samba连接,可以使用
net use 远程连接名称 /del命令,其中“远程连接名称”是net use命令列出的连接名称。删除所有缓存的连接:如果想一次性删除所有缓存的Samba连接,可以使用
net use * /del命令。
执行上述步骤后,再次尝试连接到Samba服务器时,系统将要求重新输入访问的账户和密码,从而应用新的配置信息。
net use \192.168.26.129\dep /delete
net use * /del /y