学习空间

CentOS7下Samba服务安装与配置

2017-08-03  本文已影响3493人  garyond

1. Samba简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。

Samba由两个主要程序组成,它们是smbdnmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbdnmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。

Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名称解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。

2. Samba安装与配置

2.1 Samba安装与查看

2.2 Samba服务配置介绍

1. 查看Samba配置文件

samba文件共享默认配置文件存放于/etc/samba/smb.conf下, 用于配置Samba服务内容。

 cat /etc/samba/smb.conf
 [global]
     workgroup = SAMBA
     security = user

     passdb backend = tdbsam

     printing = cups
     printcap name = cups
     load printers = yes
     cups options = raw

  [homes]
     comment = Home Directories
     valid users = %S, %D%w%S
     browseable = No
     read only = No
     inherit acls = Yes

 [printers]
     comment = All Printers
     path = /var/tmp
     printable = Yes
     create mask = 0600
     browseable = No

 [print$]
     comment = Printer Drivers
     path = /var/lib/samba/drivers
     write list = root
     create mask = 0664
     directory mask = 0775

2. Samba配置文件详解

2.3 配置Samba服务

  1. 服务规划

    • 系统分区时,单独划分一个/storage的分区,分区下有logger和shared两个文件夹;
    • logger文件夹/storage/logger下对应的管理员账号为logadmin,用户账号为loguser;
    • shared文件夹/storage/shared下对应的管理员账号为admin,用户账户号为shared;
  2. 创建文件夹和用户

    • 创建文件夹

      # 创建文件夹
      [root@NetTrade-File-Server storage]# cd /storage
      [root@NetTrade-File-Server storage]# mkdir logger  shared
      [root@NetTrade-File-Server storage]# ls
      total 0
      drwxr-xr-x. 2 root root 6 Aug  3 10:12 logger
      drwxr-xr-x. 2 root root 6 Aug  3 10:12 shared
      
    • 创建用户

      # 创建用户
      [root@NetTrade-File-Server storage]# useradd -s /sbin/nologin logadmin
      [root@NetTrade-File-Server storage]# useradd -s /sbin/nologin admin
      [root@NetTrade-File-Server storage]# useradd -g admin -s /sbin/nologin shared
      [root@NetTrade-File-Server storage]# cat /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      bin:x:1:1:bin:/bin:/sbin/nologin
      daemon:x:2:2:daemon:/sbin:/sbin/nologin
      adm:x:3:4:adm:/var/adm:/sbin/nologin
      lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
      sync:x:5:0:sync:/sbin:/bin/sync
      shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
      halt:x:7:0:halt:/sbin:/sbin/halt
      nobody:x:99:99:Nobody:/:/sbin/nologin
      systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
      systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
      dbus:x:81:81:System message bus:/:/sbin/nologin
      polkitd:x:998:997:User for polkitd:/:/sbin/nologin
      tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
      sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
      postfix:x:89:89::/var/spool/postfix:/sbin/nologin
      tcpdump:x:72:72::/:/sbin/nologin
      logadmin:x:1000:1000::/home/logadmin:/sbin/nologin
      loguser:x:1001:1000::/home/loguser:/sbin/nologin
      admin:x:1002:1002::/home/admin:/sbin/nologin
      shared:x:1003:1002::/home/shared:/sbin/nologin
      [root@NetTrade-File-Server storage]# 
      
    • 建立Samba用户

      [root@NetTrade-File-Server storage]# smbpasswd -a logadmin
      New SMB password:
      Retype new SMB password:
      Added user logadmin.
      [root@NetTrade-File-Server storage]# smbpasswd -a loguser
      New SMB password:
      Retype new SMB password:
      Added user loguser.
      [root@NetTrade-File-Server storage]# smbpasswd -a admin
      New SMB password:
      Retype new SMB password:
      Added user admin.
      [root@NetTrade-File-Server storage]# smbpasswd -a shared
      New SMB password:
      Retype new SMB password:
      Added user shared.
      
    • 更改目录属性

      [root@NetTrade-File-Server storage]# chown logadmin.logadmin logger
      [root@NetTrade-File-Server storage]# chown admin.admin shared
      [root@NetTrade-File-Server storage]# chmod -R 777 logger
      [root@NetTrade-File-Server storage]# chmod -R 777 shared
      [root@NetTrade-File-Server storage]# 
      
  3. 配置Samba服务

    [root@NetTrade-File-Server storage]# vi /etc/samba/smb.conf
    [global]
        workgroup = SC.LOCAL
        server string = Samba Server Version %v
        netbios name = NetTrade-File-Server
        log file = /var/log/samba/%m.log
        max log size = 10240
        security = user
        passdb backend = tdbsam
    
    [logger]
        comment = Logs Directories
        path = /storage/logger/
        public = no
        admin users = logadmin
        valid users = @logadmin
        browseable = yes
        writable = yes
        create mask = 0777
        directory mask = 0777
        force directory mode = 0777
        force create mode = 0777
    
    [shared]
        # 共享文件目录描述
        comment = Shared Directories
        # 共享文件目录
        path = /storage/shared/
        # 是否允许guest访问
        public = no
        # 指定管理用户
        admin users = admin
        # 可访问的用户组、用户
        valid users = @admin
        # 是否浏览权限
        browseable = yes
        # 是否可写权限
        writable = yes
        # 文件权限设置
        create mask = 0777
        directory mask = 0777
        force directory mode = 0777
        force create mode = 0777
    

    修改完Samba配置文件后,需要重启Samba服务配置才能生效。

  4. 测试Samba服务

    • 访问Samba服务

      使用Windows客户机通过UNC路径访问Samba服务, 如: \\192.168.6.186, 此时会提示输入用户名和密码(在第2步中创建的用户和密码,如logadmin等)。

      UNC路径访问 输入用户名和密码 共享文件夹

3. 错误处理

  1. 如果拷贝文件时出现目标文件夹访问被拒绝错误,如下图所示。此时需要检查一下Samba服务器的Selinux和防火墙配置,确认一下Selinux是否关闭,同时确认一下防火墙是否已经打开了Samba服务端口(与Samba服务相关的端口有137、138、139和445)。 最后确认一下Samba提供的共享文件夹是否具有读写权限,具体可以参考第2步和第3步配置(目录属性和Samba服务配置)。

    拷贝文件时出现错误
  2. 当我们要进入不同的samba目录,如:进入shared共享文件夹,但是这些目录都有自己的密码设置时,如果我们在点击这个目录时输入访问该目录的用户名和密码时,会提示“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次。”出现此问题是windows自身的限制,通常我们会注销当前windows用户,然后再重新登陆samba来访问其他目录。

    目录访问错误

    此时,我们可以打开命令行界面,输入net use * /del /y命令来切掉本机当前的所有远程共享文件信息,然后点击其他目录输入该目录具有访问权限的用户名和密码即可正常访问了。

    切断远程连接 更换访问目录
上一篇 下一篇

猜你喜欢

热点阅读