Samba 服务器可以使用户在异构网络操作系统之间进行文件共享。 Samba 服务器提供了在Windows 环境下共享 Linux 中用户目录的一个工具。 在Linux 中安装Samba 后,Windows 用户只需进行简单的用户登录 ,Linux 中的目录就可以作为一个驱动器,在 Windows 中利用资源管理器进行直接操作。
一、本篇目标需求:
设公司内部分为硬件部与软件部两个部门,为两个部门提供文件共享服务,客户端计算机采用用户隔离的方式访问服务器上的资源,实现 Windows 和 Linux 资源共享。要求硬件部资料存放在 samba 服务器的 /mnt/hardware 目录中,软件部的资料存放在 samba 服务器的 /mnt/software 目录中。
步骤 1 、在 /mnt 目录下建立hardware 和 software 子目录,并分别在子目录中建立测试文件。
mkdir /mnt/hardware
mkdir /mnt/software
cd /mnt/software
touch software1.txt software2.txt
cd /mnt/hardware
touch hardware1.txt hardware2.txt
步骤 2 、添加硬件部测试用户和用户组 ,并添加相应的samba账号。
groupadd hardwares //组
useradd -g hardwares hardware1 //创建用户并将其添加至组中
useradd -g hardwares hardware2
passwd hardware1
passwd hardware2
smbpasswd -a hardware1
smbpasswd -a hardware2
Smbpasswd参数:
-a | 添加用户 |
-x | 删除用户 |
-d | 冻结用户 |
-n | 密码置空 |
步骤 3 、添加软件部测试用户和用户组,并添加相应的samba账号。
groupadd softwares
useradd -g softwares software1
useradd -g softwares software2
passwd software1
passwd software2
smbpasswd -a software1
smbpasswd -a software2
步骤 4、 设置共享目录的本地系统权限。
chgrp hardwares /mnt/hardware
chgrp softwares /mnt/software
chmod 770 /mnt/hardware
chmod 770 /mnt/hardware
chgrp 命令是用来改变文件或目录所属的用户组。其中,组名也可以是用户组的ID。
chmod 用来修改文件的权限:7(r、w、x) 7(r、w、x) 0
第一个7表示的是文件所有者拥有 可读、可写和可执行的权力
第二个7表示的是文件所属的组具有 可读、可写和可执行的权力
第三个0 则表示其他用户不具有 读 写 执行 中任一权力
步骤 5、修改samba的主配置文件。
使用vim打开配置文件:
vim /etc/samba/smb.conf
添加以下配置内容:
[hardwares]
comment = hardwares
path = /mnt/hardware
writable = yes
browseable = yes
valid user = @ hardwares
[softwares]
comment = softwares
path = /mnt/software
writable = yes
browseable = yes
valid user = @ softwares
(因为个人原因照片上传不了,各位看客还请包涵,如有不足还请指点)
comment = hardwares
说明:comment是对改共享的描述,可以是任意字符。
path = /mnt/hardware
说明:path用来指定共享目录的路径。
writable = yes
说明:writable用来指定改共享路径是否可写。
browseable = yes
说明:browseable用来指定该共享目录是否可以浏览
valid user = @ hardwares
说明:valid user用来限制其他用户的访问
步骤 6、保存以上配置文件内容并重启samba服务。
systemctl restart smb.conf
步骤 7 、Windows端测试:
使用 Win + R 打开运行窗口输入:\\192.168.xx.xx(服务端的端口ip)
进行这一步说明我们已经成功了,得到了两个共享文件夹(硬件部和软件部)。
我们点击其中一个会出现如图所示:
这里我们使用硬件部的用户名与密码登录(hardware1、2),密码是smb账号的密码(smbpasswd)
只有输入正确的账号密码才能访问,即软件部的账号不能登录于硬件部,从而实现了对用户的限制。
当然我们也可以遇到这种情况:
这个时候我们首先检查一下samba的配置文件:
如果发现个别单词打错了或者漏掉了及时补上,倘若还是不允许访问,这时我们再去检查防火墙是否关闭或者说是否限制了。
关闭防火墙:
systemctl stop firewalld