• Linux使用Samba实现文件共享


    Samba服务是现在Linux系统与Windows系统之间共享文件的最佳选择。

    [root@study ~]# yum install samba -y  #安装samba服务

    [root@study ~]# cat -n /etc/samba/smb.conf  #查看samba主配置文件

    Samba服务程序中的参数以及作用

    [global] 参数 作用
      workgroup = MYGROUP

    #工作组名称

      server string = Samba Server Version %v

    #服务器介绍信息,参数%v为显示SMB版本号

      log file = /var/log/samba/log.%m

    #定义日志文件的存放位置与名称,参数%m为来访的主机名

      max log size = 50

    #定义日志文件的最大容量为50KB

      security = user

    #安全验证的方式,总共有4种

     

    #share:来访主机无需验证口令;比较方便,但是安全性很差

     

    #user:需验证来访主机提供口令后才可以访问;提高了安全性

     

    #server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)

     

    #domain:使用域控制器进行身份验证

     

    passdb backend = tdbsam

    #定义用户后台的类型,共有3种
     

    #smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码

     

    #tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户

     

    #ldapsam:基于LDAP服务进行账户验证

     

    load printers = yes

    #设置在Samba服务启动时是否共享打印机设备
     

    cups options = raw

    #打印机的选项
    [homes]   #共享参数
      comment = Home Directories #描述信息
      browseable = no #指定共享信息是否在“网上邻居”中可见
      writable = yes #定义是否可以执行写入操作,与"read only“相反
    [printers]   #打印机共享参数

    [root@study ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak  #备份配置文件

    [root@study ~]# cat /etc/samba/smb.conf.bak |grep -v "#" |grep -v ";" | grep -v "^$" > /etc/samba/smb.conf  #去掉以#号分号;开头的注释信息。

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

    配置共享资源

     用于设置Samba服务程序的参数以及作用

    参数 作用
    [database] 共享名称为database
    comment = Do not  arbitrarily modify the database file 警告用户不要随意修改数据库
    path = /home/database 共享目录为/home/database
    public = no 关闭“所有人可见”
    writeable yes  允许写入操作

    第1步:创建用于访问共享资源的账户信息。在Centos7中Samba服务程序默认使用的是用户口令认证模式(user)。

    pdbedit命令用于管理SMB服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。在第一次把账户信息写入到数据库时需要使用-a参数,以后执行修改密码、删除账户等操作时就不在需要该参数。

    用于pdbedit命令的参数以及作用

    参数 作用
    -a 用户名 建立Samba账户
    -x 用户名 删除Samba账户
    -L 列出账户列表
    -Lv 列出账户详细信息的列表

    [root@study ~]# useradd Samba
    [root@study ~]# id Samba
    uid=1002(Samba) gid=1002(Samba) groups=1002(Samba)
    [root@study ~]# pdbedit -a -u Samba

    new password:输入密码
    retype new password:再次输入密码

    第2步:创建用于共享资源的文件目录。应当考虑文件读写权限问题。

    [root@study ~]# mkdir /home/database
    [root@study ~]# chown -Rf Samba:Samba /home/database

    第3步:在Samba服务程序的主配置文件中,写入共享信息。

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

    1 [global]
    2 workgroup = MYGROUP
    3 server string = Samba Server Version %v
    4 log file = /var/log/samba/log.%m
    5 max log size = 50
    6 security = user
    7 passdb backend = tdbsam
    8 load printers = yes
    9 cups options = raw
    10 [database]
    11 comment = Do not arbitrarily modify the database file
    12 path = /home/database
    13 public = no
    14 writable = yes

    第4步:重启smb服务

    [root@study ~]# systemctl restart smb
    [root@study ~]# systemctl enable smb

    利用Windows访问文件共享服务

    Linux:192.168.218.138

    Win+r

    \192.168.218.138

    使用刚才设值的用户名密码登录测试增删改权限

    Linux访问文件共享服务

    Windows:192.168.0.105

    [root@study ~]# yum install cifs-utils -y

    在Linux客户端,按照Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中。权限修改为仅root管理员读写:

    [root@study ~]# vim auth.smb

    username=Samba
    password=123456
    domain=MYGROUP

    [root@study ~]# chmod 600 auth.smb

     在Linux客户端创建一个用于挂在Samba服务共享资源的目录,挂载信息写入到/etc/fstab文件中,确保挂载信息

    [root@study ~]# vim /etc/fstab

    //192.168.218.138/database /database cifs credentials=/root/auth.smb    0 0在服务器重启后依然生效:

    [root@study ~]# mount -a

    Linux客户端成功挂载了Samba服务的共享资源。可以看到Windows系统创建的qer.txt文件

    [root@study ~]# cat /database/qer.txt 

  • 相关阅读:
    离散数学概论
    Linux内核分析
    程序的本质
    常见bug分析
    java编程思想--学习心得
    领域特定语言--心得
    Linux下网卡配置
    ubuntu下安装python的gevent模块遇到的一个问题
    二分图的最小点覆盖和最大独立集
    win7通过ssh远程登录mininet虚拟机,运行wireshark并通过x11在宿主机显示图形界面
  • 原文地址:https://www.cnblogs.com/DevonL/p/11178674.html
Copyright © 2020-2023  润新知