linux下Samba实现文件共享详解

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

linux下Samba实现文件共享详解_第1张图片

输入账户和密码

linux下Samba实现文件共享详解_第2张图片

打开文件

linux下Samba实现文件共享详解_第3张图片

关闭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

 

 

你可能感兴趣的:(Linux)