linux中samba的部署及应用详解

samba:
启动服务:nmb.server;smb.server

会通过文件系统的方式输出给客户端

smb:Service Message Block;服务信息块
cifs:Common Internet File System,通用互联网文件系统
samba:Andrew Tridgell;热情奔放的桑巴舞,主要的协议 cifs,协议

1.功能:

文件系统共享;

NetBIOS协议;

打印服务;

2、工作模型

peer to peer(Work Group):工作组模型

domain devel:域模型

  实现方式:LDAP:Lightweight Directory Access Protocol
  轻量级目录服务访问协议
3、安装 :yum install samba

       

一、程序环境:

4、配置文件:

    /etc/samba/smb.conf
5、主程序:

    nmbd:Network Naming Service, 主要是为了完成NetBIOS域名解析
    smbd:SMB/CIFS Service;根本的samba主程序
6、Unit File:

    /usr/lib/systemd/system/nmb.service
    /usr/lib/systemd/system/smb.service
7、监听的端口:

    137/udp, 138/udp
    139/tcp, 445/tcp
8、客户端程序:

    mount -t cifs = mount.cifs  
    专用于挂载samba文件系统的方式

    smbclient:交互式命令行客户端工具;
注意:samba使用的是系统中的用户名,但是不会使用其密码,samba内部提供了一个内置的密码机制!

二、samba的配置:

/etc/samba/smb.conf
       

两类配置段:

全局配置:

[global]

Network-Related Options ----网络相关的选项

    workgroup = MYGROUP //定义工作组组名
    server string = Samba Server Version %v
    //定义提示信息,%v表示宏定义samba的版本号

    ; netbios name = MYSERVER //win主机为了在win解析对等网络的主机名时,当前主机用什么去相应

  ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/2 
     #启用的话 指明要监听的地址和接口(默认注释掉的信息)用空格分开,lo 表示监听本地的主机端口

  ; hosts allow = 127. 192.168.12. 192.168.13.
        做访问控制,白名单;127.表示127.0.0.1/8所在的网段,192.168.12表示192.168.12的网段

 

Logging Options ---------日志选项

     log file = /var/log/samba/log.%m
    #表示每个访问的主机用单独的文件访问 %m表示那个主机的地址

    max log size = 50
    #记录的文件大小一旦超过这个大小就要滚动表示了,应当调大一点 51200 ;512M

Standalone Server Options --------独立服务选项(就是我们只用来配置sambaserver的选项)
    security = user
        share (depricated)
        server (depricated)
        domain   
    定义安全选项为 账号密码登陆,账号为系统账号

    passdb backend = tdbsam
    定义密码存储机制 tdbsam

Browser Control Options -------- 浏览器控制选项
Name Resolution ----------名称解析
 Printing Options -------打印机驱动

    load printers = yes
    打印机驱动是否装载

    cups options = raw
    同用unix打印驱动    使用raw库
======== Share Definitions =========定义共享文件系统

[shared_ID]有三类:

[homes]:每个samba用户是否能够通过samba服务访问其家目录;

[printers]:打印服务;

[shared_FS]:用户自定义的共享目录;

常用指令:

comment:注释信息,解释作用;

path:本地文件系统路径;

browseable:是否可浏览,是否为用户可见;

guest ok:是否允许来宾账号访问;

public:是否公开给所有来宾与上一条意义一样;

writable:服务对所有的用户是否可写;

read only = no

write list:拥有写权限的用户或组列表这条与上一条不能通用;

用户名

@组名, +组名

三、samba用户管理命令:smbpasswd, pdbedit

smbpasswd [OPTIONS] USERNAME 传统命令

-h:获取帮助
-a:添加用户进samba用户
-x:删除用户
-d:禁用用户
-e:启用
-L:列出添加的用户
pdbedit:

-L:列出samba服务中的所有用户;
-au:添加用户为samba用户,a表示添加,u指明用户名;
-x:删除
-t:从标准输出接收密码;

四、访问服务:

1、smbclient交互式客户端程序:

(1) 查看目标服务上的共享

    smbclient -L SMB_SERVER [-U USERNAME]

(2) 访问共享服务

    smbclient //SMB_SERVER[/SHARE_NAME] [-U USERNAME]


2、mount.cifs

 


    mount -t cifs //SMB_SERVER/SHARED_ID  /MOUNT_POINT  -o username=USER,password=PASS
注意:挂载操作中的用户,与-o选项中指定的用户直接产生映射关系;访问挂载,是以-o选项指定的用户身份运行,与本地用户以ID产生映射;

这里有些小东西要记住:当客户端主机用户B和服务端允许的samba权限为 读写 用户A上的 ID 号一样时会导致 B用户会对此samba系统有读写权限!
    前提:B用户要对挂载的目录有读写权限,且A用户也要对共享的samba目录也要用读写权限才行(就是文件系统权限要开放!samba服务权限也要开放,才可以)
smbstatus命令:

显示samba服务的相关共享的访问状态信息;
    -b:显示简要格式信息;
    -v:显示详细格式信息;
                                   

自定义共享的方式:

[shared_ID]
    comment =
    path =
    guest ok =
    read only =
    public =
    browseable =
    write list =
测试语法命令 : testparm

注意:定义所用户在服务级的写权限write = yes (read only = no)不建议与write list同时使用;

实验1:客户端命令方式挂载

步骤1、改配置文件:

开发详解">
   

发现并不能上传,这是因为服务端centos用户不能对 /samba/tools 有写权限

步骤2、加上写权限

 

时间: 2024-11-08 20:25:45

linux中samba的部署及应用详解的相关文章

linux中crontab命令启动/重启/停止详解

linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,cron

Linux中工作管理与系统资源查看详解

Part One 工作管理 工作管理指的是在单个登录终端同时管理多个工作的行为.Linux中的工作管理,简而言之就是把工作放在后台运行的行为.在windows中,我们经常也会针对各种工作做出管理,常用的将工作放在后台的方式就是最小化某个应用程序.那么为什么要对工作进行管理呢?在windows中这很好理解,我们要对其他工作进行操作时,一般只有将当前工作界面最小化才能方便处理其他工作.同样的,在Linux中,比如我们执行cp命令复制一个很大的文件时,如果不是将其置于后台执行,就只能等到复制完成才能对

linux中Axel多线程下载工具参数详解

Axel安装 Debian/Ubuntu/Linux Mint用户  代码如下 复制代码 sudo apt-get install axel Redhat/Fedora 用户可用下面命令安装:  代码如下 复制代码 yum install axel 同样,大家可以源码编译安装:  代码如下 复制代码 cd ~/Download wget http://alioth.debian.org/frs/download.php/3015/axel-2.4.tar.gz tar zxvf axel-2.4

Linux中编译安装MemcacheQ的步骤详解

队列(Queue)是一种常用的数据结构.在队列这种数据结构中,最先插入的元素将会最先被取出:反之最后插入的元素将会最后被取出,因此队列又称为"先进先出"(FIFO:First In First Out)的线性表. 加入元素的一端叫"队尾",取出元素的一端叫"队头".利用消息队列可以很好地异步处理数据的传送和存储,当遇到频繁且密集地向后端数据库中插入数据时,就可采用消息队列来异步处理这些数据写入. MemcacheQ是一款基于Memcache协议的

linux中pip安装步骤与使用详解

1.pip下载安装 1.1 pip下载  代码如下 复制代码 # wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate 1.2 pip安装  代码如下 复制代码 # tar -xzvf pip-1.5.4.tar.gz # cd pip-1.5.4 # python setup.py

linux中sosreport工具安装使用方法详解

sosreport是一个类型于supportconfig 的工具,sosreport是python编写的一个工具,适用于centos(和redhat一样,包名为sos).ubuntu(其下包名为sosreport)等大多数版本的linux .sosreport在github上的托管页面为:https://github.com/sosreport/sos ,而且默认在很多系统的源里都已经集成有.如果使用的是正版redhat,在出现系统问题,寻求官方支持时,官方一般也会通过sosreport将收集的

Linux中fork,vfork和clone详解(区别与联系)

fork,vfork,clone Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程) 系统调用 描述 fork fork创造的子进程是父进程的完整副本,复制了父亲进程的资源,包括内存的内容task_struct内容 vfork vfork创建的子进程与父进程共享数据段,而且由vfork()创建的子进程将先于父进程

Linux中的Configure选项配置参数详解

  Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了.Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用. 与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦. 为此我转载了一篇关于Configure选项配置的详细介绍.供大家参考 'con

Linux中rz和sz命令用法详解

 rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 优点就是不用再开一个sftp工具登录上去上传下载文件. sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 安装命令: yum install lrzsz 从服务端发送文件到客户端: sz filename 从客户端上传文件到服务端: rz 在弹出的框中选择文件,上传文件的用户和组是当前登录的用户 SecureCRT设置默认路径: Op