linux下Samba实现文件共享详解

xiaoxiao2025-05-02  12

ftp:修改完本地文件上传到远程主机上实现文件的共享

NFS(network file system):将远程linux主机数据挂载到本地目录的一种服务,不能实现linux和windows之间的共享服务

Samba:和NFS相比,主要是实现了linux和windows之间的文件共享


1:安装Samba服务

[root@localhost ~]# yum install samba ------------------------------省略部分安装过程------------------------------- 验证中 : samba-common-tools-4.2.3-10.el7.x86_64 38/40 验证中 : samba-libs-4.2.3-10.el7.x86_64 39/40 验证中 : krb5-devel-1.13.2-10.el7.x86_64 40/40 已安装: samba.x86_64 0:4.7.1-9.el7_5 作为依赖被安装: libkadm5.x86_64 0:1.15.1-19.el7 作为依赖被升级: dbus.x86_64 1:1.10.24-7.el7 dbus-libs.x86_64 1:1.10.24-7.el7 dbus-x11.x86_64 1:1.10.24-7.el7 krb5-devel.x86_64 0:1.15.1-19.el7 krb5-libs.x86_64 0:1.15.1-19.el7 krb5-workstation.x86_64 0:1.15.1-19.el7 libldb.x86_64 0:1.2.2-1.el7 libsmbclient.x86_64 0:4.7.1-9.el7_5 libtalloc.x86_64 0:2.1.10-1.el7 libtdb.x86_64 0:1.3.15-1.el7 libtevent.x86_64 0:0.9.33-2.el7 libwbclient.x86_64 0:4.7.1-9.el7_5 pytalloc.x86_64 0:2.1.10-1.el7 samba-client.x86_64 0:4.7.1-9.el7_5 samba-client-libs.x86_64 0:4.7.1-9.el7_5 samba-common.noarch 0:4.7.1-9.el7_5 samba-common-libs.x86_64 0:4.7.1-9.el7_5 samba-common-tools.x86_64 0:4.7.1-9.el7_5 samba-libs.x86_64 0:4.7.1-9.el7_5 完毕!

查询配置文件

[root@localhost ~]# cat /etc/samba/smb.conf

注意:修改配置文件的时候最好备份一下,防止修改错误

修改配置文件

[root@localhost ~]# vim /etc/samba/smb.conf

在文件最后写入一下信息(这里的/home/database是说明文件,实际创建时,因为考虑到文件权限问题建议创建在/database

[linuxsamba] #共享文件名称 comment = 写入共享文件说明信息 #信息 path = /home/database #共享位置 public = no #关闭所有人可见 writable = yes #写入

服务重启生效

Samba服务默认验证为user,所以需要先创建用户数据库才能使用!

1:检查当前是否为user验证模式

[root@localhost ~]# vim /etc/samba/smb.conf [global] ...... security = user passdb backend = tdbsam ......

2:创建共享文件夹

[root@localhost ~]# pwd [root@localhost ~]# mkdir /database #因为smbuser用户名没有root的权限,所以建议在/下创建 [root@localhost ~]# ls / ...... database ......

3:修改配置文件

[linuxsamba] #共享文件名称 comment = 写入共享文件说明信息 #信息 path = /database #共享位置 public = no #关闭所有人可见 writable = yes #写入

4:samba服务重启实现

[root@localhost ~]# systemctl restart smb.service [root@localhost ~]# systemctl restart smb.service Job for smb.service failed because the control process exited with error code. See "systemctl status smb.service" and "journalctl -xe" for details.

这是因为配置文件修改错误,将写入的注解删掉

加入开启启动

[root@localhost ~]# systemctl enable smb.service

关闭防火墙和Selinux

5:创建samba服务用户

先创建一个用户,然后用pdbedit命令提升为samba用户

[root@localhost ~]# useradd smbuser [root@localhost ~]# pdbedit -a -u smbuser new password:输入密码 retype new password:再次输入密码 Unix username: smbuser NT username: Account Flags: [U ] User SID: S-1-5-21-3137575464-3575851905-102407573-1000 Primary Group SID: S-1-5-21-3137575464-3575851905-102407573-513 Full Name: Home Directory: \\localhost\smbuser HomeDir Drive: Logon Script: Profile Path: \\localhost\smbuser\profile Domain: LOCALHOST Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: 三, 06 2月 2036 23:06:39 CST Kickoff time: 三, 06 2月 2036 23:06:39 CST Password last set: 一, 29 10月 2018 15:24:01 CST Password can change: 一, 29 10月 2018 15:24:01 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

共享文件到这了就完成了!注意:关闭防火墙和Selinux


windows端登录:

win键+R

输入账户和密码

打开文件

关闭Selinux(如果文件在/home/database下也会有相似的问题哦,所以database创建位置/database更加合理)

这里小博主就不关闭selinux了(不会告诉你们难得重启服务器)

添加允许Selinux的规则:

[root@localhost ~]# chown -Rf smbuser:smbuser database/ [root@localhost ~]# setse setsebool setserial [root@localhost ~]# setse setsebool setserial [root@localhost ~]# setsebool -P samba_enable_home_dirs on [root@localhost ~]# semanage fcontext -a -t samba_share_t database [root@localhost ~]# restorecon -Rv database/

现在可以打开linuxsamba文件了,但是,注意可能会没有写入权限。因为

[root@www /]# ll database/ 总用量 0 drwxr-xr-x 2 root root 6 10月 30 10:17 1

linux下挂载/database文件:

1:安装挂载文件类型软件

yum install cifs-utils -y

2:挂载文件

mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw,file_mode=0777,dir_mode=0777,setuid=509,setgid=101

或者

mount -t cifs //192.168.1.65/linuxsamba /database -o username=smbuser,password=123456,rw

注意://192.168.1.65/后面是共享文件名称,而不是目录的名称:错写//192.168.1.65/database

 

 

转载请注明原文地址: https://www.6miu.com/read-5029641.html

最新回复(0)