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 1linux下挂载/database文件:
1:安装挂载文件类型软件
yum install cifs-utils -y2:挂载文件
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