dnf install samba samba-common samba-client 或 yum install samba samba-common samba-client
安装samba
我们还必须确保Windows和Linux系统在同一工作组中。因此,转到Windows PC并启动命令提示符。输入命令:
> net config workstation
从输出中我们可以清楚地看到工作站域指向' WORKGROUP '。稍后将在Linux机器上对其进行配置。
步骤2)配置Samba
安装了Samba之后,就该进行一些配置了。但是在执行此操作之前,我们需要备份samba配置文件。因此,运行以下命令:
$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
接下来,我们将创建一个名为shared的共享文件夹,并分配必要的权限和所有权,如图所示。
$ sudo mkdir -p /srv/samba/shared
$ sudo chmod -R 0755 /srv/samba/shared
$ sudo chown -R nobody:nobody /srv/samba/shared
现在创建一个新的samba配置文件
$ sudo vim /etc/samba/smb.conf
修改以下配置:
[global] #全局配置
workgroup = WORKGROUP #与windows工作组同名
server string = Samba Server %v #samba server 名称及版本
netbios name = centos-8 #在netbios网络上的名称
security = user #验证用户登录的方式
map to guest = bad user
[home] #共享文件夹配置 window显示 'home'为文件夹名称
path = /srv/samba/shared #centos服务器中共享的文件路径
browsable =yes #yes 可以浏览
writable = yes #可以写入
guest ok = yes #可以匿名登录
read only = no #只读 停用
保存并关闭配置文件。要验证配置是否正确,请运行testparm命令
步骤3)在防火墙上允许samba服务
接下来,允许Samba穿越防火墙,以便外部用户可以访问samba共享。
$ sudo firewall-cmd --add-service=samba --zone=public --permanent
$ sudo firewall-cmd --reload
步骤4)启动并启用Samba服务
最后,启动并启用Samba和nmb服务
$ sudo systemctl start smb
$ sudo systemctl enable smb
然后确认smb服务是否正在运行:
$ sudo systemctl status smb
$ sudo systemctl start nmb
$ sudo systemctl enable nmb
同样,确认nmb服务是否正在像smb服务一样运行:
$ sudo systemctl status nmb
在Samba中创建安全共享
每个人都可以访问我们刚刚创建的文件共享,任何用户都可以创建和删除文件。如果您要共享关键文档,这也将构成挑战,因为它们也可以被覆盖或删除。因此,我们需要创建一个安全的文件共享来应对这一挑战。
首先,我们将为samba用户创建一个新组,如下所示:
$ sudo groupadd secure_group
然后我们将一个新用户添加到新创建的组中
$ sudo useradd -g secure_group linuxuser
接下来,我们将创建一个新的安全文件夹,然后分配必要的权限和文件所有权,如下所示。
$ sudo mkdir -p /srv/samba/secure_share
$ sudo chmod -R 0770 /srv/samba/secure_share
$ sudo chcon -t samba_share -p /srv/samba/secure_share
$ sudo chown -R root:secure_group /srv/samba/secure_share
接下来,我们将为samba用户分配一个密码,该密码将在访问安全文件共享时使用。这将提示您提供SMP密码,然后再确认。
$ sudo smbpasswd -a linuxuser
现在让我们回到Samba的配置文件
$ sudo vim /etc/samba/smb.conf
附加如下所示的配置行:
[secured]
path = /srv/samba/secure_share
valid users = @secure_group
guest ok = no
writable = yes
browsable = yes
保存并退出,然后重新启动Samba服务
$ sudo systemctl restart samba
+++++++++++++++从Linux机器访问Samba安全文件夹++++++++++++++++++++++
要从Linux系统访问共享目录,只需运行以下命令:
$ smbclient --user=linuxuser -L //192.168.43.13
在提示时提供密码,然后按Enter
访问安全共享运行
$ smbclient //192.168.43.13/secured -U linuxuser
随意创建文件和目录以与其他samba用户共享。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、检查文件夹及配置文件,是否设置错误,文件夹名是否写错?
2、 检查共享文件列表
smbclient -L //192.168.221.129/
使用pdbedit -L 命令查看用户是否加入samba服务器?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
如果用windows访问samba,跳出以下对话框的错误:
无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。
不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次……或者直接重启Windows。
怎么断开连接(即退出Samba服务器)呢?
在Windows的命令行中输入:
net use * /delete /y
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
linux centos 服务器上文件夹的所有者必须是共享用户名和用户组。不能是root
ls -al #查看权限及所有者
chown -R jf:jifang /home/samba/shared #更改所有者和用户组