Linux网络服务——samba服务器搭建

Posted 0611#

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络服务——samba服务器搭建相关的知识,希望对你有一定的参考价值。

SAMBA服务器

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

一、实验目的

  • 搭建SAMBA服务器
  • 与客户端共享文件

二、实验环境

  • Linux主机作为SAMBA服务器,ip地址:192.168.100.20

三、实验过程(如下)

第一步:安装SAMBA服务器

安装思路

  • 一、使用rpm安装
[root@pakho ~]# mount /dev/cdrom /mnt/cdrom/  #将光盘挂载
mount: /dev/sr0 is write-protected, mounting read-only
[root@pakho ~]# df -hT #查看挂载情况
/dev/sr0                iso9660   4.2G  4.2G     0 100% /mnt/cdrom  #已挂载
[root@pakho ~]# cd /mnt/cdrom/Packages/  #进入安装包目录
[root@pakho Packages]# ls | grep samba   #使用过滤查看samba安装包
samba-4.7.1-6.el7.x86_64.rpm #找到samba安装包
...#省略部分
[root@pakho Packages]# rpm -ivh samba-4.7.1-6.el7.x86_64.rpm

需要解决大量依赖于是选择yum安装可以自我解决依赖

  • 二、使用yum安装

第二步:安装samba

[root@pakho ~]# yum provides samba #查看samba安装包名
[root@pakho ~]# yum -y install samba #安装
[root@pakho ~]# rpm -ql  samba  #查看软件包安装路径找配置文件

Samba的配置目录:/etc/samba/
Samba的配置文件:/etc/samba/smb.conf

[root@pakho ~]# cd /etc/samba/ #进入samba配置文件
[root@pakho samba]# ls 
lmhosts  smb.conf  smb.conf.example
[root@pakho samba]#  cp smb.conf smb.conf.backup #将主配置文件进行备份

第三步:配置主配置文件

#辅助配置内容                                      #查看主配置文件
#注释行:以 # 号开头的行
#配置样例行:以 ; 号开头的行
#结合 grep 命令可以提取有效配置行
[root@pakho samba]# grep  -v "^#" smb.conf | grep -v "^;" | grep -v "^$"
# 查看配置文件  去除#号开头的行 去除有样例的行 去除空行
  • smb.conf 文件的配置内容
    [global]:全局设置
    [homes]:用户目录共享设置
    [printers]:打印机共享设置
    [myshare]:自定义名称的共享目录设置
  • 插入如下内容
[mytest]        #自定义名称
        comment = Test Samba server            #对共享的说明 :测试samba服务器
        path = /tmp/sambatest                  #共享路径 前提是有
        guest ok = Yes                         #是否允许所有人访问
        browseable = Yes                       #文件是否是可浏览的
        valid users = sambatest1, sambatest2   #哪些用户可以访问
        write list = sambatest1                #可写的用户列表

        #writeable 是否可写

语法检查工具:testparm 仅是语法检查不检查逻辑

  • 将测试被访问文件进行提权
[root@pakho samba]# chmod -R 777 /tmp/sambatest/
[root@pakho samba]# ll -d /tmp/sambatest/
drwxrwxrwx. 2 root root 137 May 11 01:01 /tmp/sambatest/

第四步:启动samba服务

[root@pakho samba]# rpm -ql samba  #查看软件安装路径
...
/usr/lib/systemd/system/nmb.service
/usr/lib/systemd/system/smb.service  #关注nmb服务和smb服务
...
[root@pakho samba]# systemctl stop firewalld #关闭防火墙
[root@pakho samba]# setenforce 0             #关闭selinux
[root@pakho samba]# systemctl start smb      #开启smb服务
[root@pakho samba]# systemctl start nmb      #开启nmb服务
[root@pakho samba]# vim /etc/sysconfig/selinux #也可以永久关闭selinux
  • 查看服务端口
    smd端口为445和139
    nmb端口为137和138

第五步:创建samba程序用户

[root@pakho samba]# pdbedit -a sambatest1  #创建samba程序用户与Linux系统用户对应
[root@pakho samba]# pdbedit -a sambatest2  
[root@pakho samba]# pdbedit -L             #列出程序用户
sambatest1:1001:
sambatest2:1002:

第六步:测试samba服务

一、windows测试

  • 使用windows访问

    mytest为共享文件名 \\\\为samba访问
  • 输入刚创建的用户名
  • 成功进入共享文件

二、Linux测试

  • 打开一台新的机器
  • 安装samba客户端
[root@611 ~]# yum -y install samba-client
  • 下载文件
[root@611 ~]# smbclient -U sambatest1 //192.168.100.20/mytest #使用命令加用户进行登陆
Enter SAMBA\\sambatest1's password:
Try "help" to get a list of possible commands.
smb: \\>  ls                                                   #查看共享文件里的内容
  .                                   D        0  Tue May 11 01:01:06 2021
  ..                                  D        0  Tue May 11 01:00:33 2021
  1.txt                               N        0  Tue May 11 01:01:06 2021
  2.txt                               N        0  Tue May 11 01:01:06 2021
  3.txt                               N        0  Tue May 11 01:01:06 2021
  4.txt                               N        0  Tue May 11 01:01:06 2021
  5.txt                               N        0  Tue May 11 01:01:06 2021
  6.txt                               N        0  Tue May 11 01:01:06 2021
  7.txt                               N        0  Tue May 11 01:01:06 2021
  8.txt                               N        0  Tue May 11 01:01:06 2021
  9.txt                               N        0  Tue May 11 01:01:06 2021
  10.txt                              N        0  Tue May 11 01:01:06 2021

                28289540 blocks of size 1024. 26214864 blocks available
smb: \\> get 10.txt                                           #使用get下载文件10.txt 
getting file \\10.txt of size 0 as 10.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \\> exit                                                 #退出客户端
[root@611 ~]# ls                                             #查看桌面文件是否下载成功	
10.txt  inodetest.sh  john-1.9.0.tar.gz
  • 上传文件
    使用测试用户sambatest1
[root@611 ~]# smbclient -U sambatest1 //192.168.100.20/mytest
Enter SAMBA\\sambatest1's password:
Try "help" to get a list of possible commands.
smb: \\> put john-1.9.0.tar.gz                                #上传文件
putting file john-1.9.0.tar.gz as \\john-1.9.0.tar.gz (137665.2 kb/s) (average 137665.3 kb/s)
smb: \\> exit                                                 #退出客户端
  • 回到samba服务器共享文件路径查看是否上传成功
[root@pakho samba]# ls /tmp/sambatest/
10.txt  1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt  john-1.9.0.tar.gz

sambatest1, sambatest2 用户可以访问
sambatest1 可写的用户列表

  • 切换用户进行登陆
    使用测试用户sambatest2
[root@611 ~]# smbclient -U sambatest2 //192.168.100.20/mytest
Enter SAMBA\\sambatest2's password:
Try "help" to get a list of possible commands.
smb: \\> put inodetest.sh                                    #上传文件
NT_STATUS_ACCESS_DENIED opening remote file \\inodetest.sh   #提示访问被拒绝
smb: \\> get 1.txt                                           #下载文件
getting file \\1.txt of size 0 as 1.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec) # 下载文件成功
smb: \\> exit                                                #退出客户端

以上是关于Linux网络服务——samba服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

Linux 服务器搭建之Samba服务

SAMBA 服务的搭建

SAMBA 服务的搭建

Linux:搭建samba服务器

Linux 搭建Samba(共享)服务

linux驱动环境搭建之一:安装samba服务