- 安装前可以先检查一下系统中是否已安装Samba,已安装则无需重新安装,因为卸载可能会造成数据丢失或其他错误。没有确切需求的话,低版本也能够满足使用需求。
- 本次基于OpenEulerOS系统操作,理论上CentOS7、CentOS8同样适用。
一、熟悉一下
1、Samba是什么?
Samba是运行在Linux和Unix系统之上的一款免费软件,基于SMB协议(Server Messages Block,信息服务快,点击了解)实现,由客户端
和服务器
组成。
2、Samba有哪些特点?
Samba不但可以在局域网范围内共享资源,还能在全互联网内,与全世界的计算机分享。Samba的安装十分简单,在各个主要的仓库中都提供了下载资源,我们能够基于Linux服务器和Samba,自主搭建一套文件/邮件/文档服务器,并在互联网上共享。
二、开始工作
1、进入命令行
我们依然使用yum源进行安装,输入安装命令:
[root@openEulerOS ~] yum install samba -y
## 中间省略了一大堆....
Installed:
samba-4.11.6-5.oe1.aarch64 libldb-2.0.8-2.oe1.aarch64 libsmbclient-4.11.6-5.oe1.aarch64 libtalloc-2.3.0-0.oe1.aarch64
libtdb-1.4.2-2.oe1.aarch64 libtevent-0.10.1-1.oe1.aarch64 libwbclient-4.11.6-5.oe1.aarch64 lmdb-0.9.22-4.oe1.aarch64
samba-client-4.11.6-5.oe1.aarch64 samba-common-4.11.6-5.oe1.aarch64 samba-common-tools-4.11.6-5.oe1.aarch64 samba-libs-4.11.6-5.oe1.aarch64
Complete!
[root@openEulerOS ~]
当看到
Complete!
的时候,就说明大功告成
2、关闭系统防火墙,这样才能从远程计算机访问
输入以下代码:
[root@openEulerOS ~] systemctl stop firewalld.service
[root@openEulerOS ~]
3、添加用户用于Samba验证访问
[root@openEulerOS ~] useradd samba_user01
[root@openEulerOS ~] smbpasswd -a samba_user01
New SMB password: # 输入密码
Retype new SMB password: # 再次输入密码
Added user samba_user01.
[root@openEulerOS ~]
4、使用vi编辑器更改Samba配置
进入Samba配置目录,vi打开smb.conf:
[root@openEulerOS ~] cd /etc/samba
[root@openEulerOS samba] ls
lmhosts smb.conf smb.conf.example
[root@openEulerOS samba] vi smb.conf
将 smb.conf 的配置全部删除,然后改为以下内容:
[global]
workgroup = smb
security = user
map to guest = bad user
添加如下参数,用于远程访问时的验证和文件共享目录,完成后键入:wq
保存退出:
[commonsmb]
path = /srv/mysmb/share
guest ok = no
public = yes
valid users = samba_user01
browsable = yes
writable = no
参数代表的含义:
- commonsmb:对外访问的名称
- path:文件共享的目录路径
注意,尽量把共享目录建在root目录之外,否则在samba_user01权限不足的情况下,将出现以下错误提示:tree connect failed: NT_STATUS_BAD_NETWORK_NAME
- guest ok:是否允许以访客身份匿名登录,建议为no
- public:是否是公共资源
- valid:加入校验的用户,使用刚才添加的samba_user01即可
- browsable:是否允许使用浏览器访问
- writable:是否可写,建议为no
5、新建该目录和一些测试资源,不需要太复杂
[root@openEulerOS ~] mkdir /srv/mysmb/share
[root@openEulerOS ~] cd /srv/mysmb/share
[root@openEulerOS share] touch file01.txt
[root@openEulerOS share] touch file02.txt
[root@openEulerOS share] ll
total 0
-rw------- 1 root root 0 Mar 9 19:13 file01.txt
-rw------- 1 root root 0 Mar 9 19:13 file02.txt
6、授权
[root@openEulerOS ~] chown 777 /srv/mysmb/share/
7、重启Samba服务
[root@openEulerOS ~] cd /bin
[root@openEulerOS bin] systemctl restart smb.service
[root@openEulerOS bin]
三、装好了,试试看
通过ifconfig
获取内网的私有IP,标黄的就是。
[root@openEulerOS ~] ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet `192.168.1.100` netmask 255.255.255.0 broadcast 192.168.0.255
inet6 xxxx::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:5e:93:13 txqueuelen 1000 (Ethernet)
RX packets 793 bytes 86919 (84.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 897 bytes 95657 (93.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 327 bytes 33620 (32.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 327 bytes 33620 (32.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@openEulerOS ~] smbclient //`192.168.1.100`/commonsmb -U samba_user01
Enter SMB\samba_user01's password:
Try "help" to get a list of possible commands.
smb: \> exit
[root@openEularOS ~]
看到这一步就说明OK了,在服务器上部署的server程序就可以访问共享目录读写数据。输入exit
即可退出登录。