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