- Contents安装前可以先检查一下系统中是否已安装Samba,已安装则无需重新安装,因为卸载可能会造成数据丢失或其他错误。没有确切需求的话,低版本也能够满足使用需求。本次基于OpenEularOS系统操作,理论上CentOS7、CentOS8同样适用。
一、熟悉一下二、开始工作三、装好了,试试看
一、熟悉一下
1、Samba是什么?
Samba是运行在Linux和Unix系统之上的一款免费软件,基于SMB协议(Server Messages Block,信息服务快,点击了解)实现,由客户端和服务器组成。
2、Samba有哪些特点?
Samba不但可以在局域网范围内共享资源,还能在全互联网内,与全世界的计算机分享。Samba的安装十分简单,在各个主要的仓库中都提供了下载资源,我们能够基于Linux服务器和Samba,自主搭建一套文件/邮件/文档服务器,并在互联网上共享。
1、进入命令行
我们依然使用yum源进行安装,输入安装命令:
[root@openEularOS ~] 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@openEularOS ~]
当看到Complete!的时候,就说明大功告成
2、关闭系统防火墙,这样才能从远程计算机访问
输入以下代码:
[root@openEularOS ~] systemctl stop firewalld.service [root@openEularOS ~]
3、添加用户用于Samba验证访问
[root@openEularOS ~] useradd samba_user01 [root@openEularOS ~] smbpasswd -a samba_user01 New SMB password: # 输入密码 Retype new SMB password: # 再次输入密码 Added user samba_user01. [root@openEularOS ~]
4、使用vi编辑器更改Samba配置
进入Samba配置目录,vi打开smb.conf:
[root@openEularOS ~] cd /etc/samba [root@openEularOS samba] ls lmhosts smb.conf smb.conf.example [root@openEularOS 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_NAMEguest ok:是否允许以访客身份匿名登录,建议为nopublic:是否是公共资源valid:加入校验的用户,使用刚才添加的samba_user01即可browsable:是否允许使用浏览器访问writable:是否可写,建议为no
5、新建该目录和一些测试资源,不需要太复杂
[root@openEularOS ~] mkdir /srv/mysmb/share [root@openEularOS ~] cd /srv/mysmb/share [root@openEularOS share] touch file01.txt [root@openEularOS share] touch file02.txt [root@openEularOS 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@openEularOS ~] chown 777 /srv/mysmb/share/
7、重启Samba服务
[root@openEularOS ~] cd /bin [root@openEularOS bin] systemctl restart smb.service [root@openEularOS bin]三、装好了,试试看
通过ifconfig获取内网的私有IP,标黄的就是。
[root@openEularOS ~] ifconfig eth0: flags=4163mtu 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 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 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 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@openEularOS ~] smbclient //`192.168.1.100`/commonsmb -U samba_user01 Enter SMBsamba_user01's password: Try "help" to get a list of possible commands. smb: > exit [root@openEularOS ~]
看到这一步就说明OK了,在服务器上部署的server程序就可以访问共享目录读写数据。输入exit即可退出登录。



