Samba服务及多用户samba挂载

来源:互联网 发布:java字符串金额格式化 编辑:程序博客网 时间:2024/05/17 13:44

简介

  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

  Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

  SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

  组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

管理samba用户

  • 添加samba用户
    smbpasswd -a
    pdbedit -a -u
  • 修改用户密码
    smbpasswd
  • 删除用户和密码
    smbpasswd –x
    pdbedit –x –u
  • 查看samba用户列表:
    /var/lib/samba/private/passdb.tdb
    pdbedit –L –v

  • 查看samba服务器状态
    smbstatus

配置目录文件共享

每个共享目录应该有独立的[ ]部分

  • [共享名称] 远程网络看到的共享名称
  • comment 注释信息
  • path 所共享的目录路径
  • public 能否被guest访问的共享,默认no,和guest ok 类似
  • browsable 是否允许所有用户浏览此共享,默认为yes,no为隐藏
  • writable=yes 可以被所有用户读写,默认为no
  • read only=no 和writable=yes等价,如与以上设置冲突,放在 后面的设置生效,默认只读
  • write list 三种形式:用户,@组名,+组名,用,分隔 如writable=no,列表中用户或组可读写,不在列表中用户只读
  • valid users 特定用户才能访问该共享,如为空,将允许所有用 户,用户名之间用空格分隔

SMB客户端访问

  • UNC路径: Universal Naming Convention,通用命名规范
    格式:\sambaserver\sharename
  • 终端下使用smbclient登录服务器
    smbclient -L instructor.example.com smbclient -L instructor.example.com -U wang
    smbclient //instructor.example.com/shared -U wang 可以使用-U选项来指定用户%密码,或通过设置和导出USER和 PASSWD环境变量来指定

挂载CIFS文件系统

  • 手动挂载
 mount -t cifs -o user=wang,password=magedu //server//shared   /mnt/smb

开机自动挂载

  • cat /etc/fstab 可以用文件代替用户名和密码的输入
//server/homes /mnt cifs credentials=/etc/smb.txt 0 0 
  • cat /etc/smb.txt
    username=wang
    password=password
  • chmod 600 /etc/smb.txt

实验

环境:一台samba server:192.168.243.7
一台desktop 客户机:192.168.243.6

在server上配置SAMBA服务 ,你的samba服务器必须是STAFF工作组的一个成员 ,共享/common目录,共享名为common
common必须是可以浏览的, 用户natasha必须能够读取共享中的内容,验证密码:natasha

安装samba软件包,重启服务开机自动生效

  • [root@centos7 ~]#yum -y install samba
  • [root@centos7 ~]#systemctl restart smb.service nmb.service
  • [root@centos7 ~]#systemctl enable smb.service nmb.service

创建共享目录

[root@centos7 ~]#mkdir /common[root@centos7 ~]#chmod o+w /common/

修改配置文件

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

在全局设置[global]中

把默认的workgroup = SAMBA 修改为 workgroup = STAFF

自定义共享目录

40 [common]     ## 注释信息41 path=/common    ##所共享的目录路径42 browseable=yes     ##是否允许所有用户浏览此共享,默认为yes,no为隐藏 43 valid users=natasha  ##特定用户才能访问该共享,如为空,将允许所有用 户,用户名之间用空格分隔

[root@centos7 ~]#systemctl restart smb
创建samba用户
[root@centos7 ~]#smbpasswd -a natasha
[root@centos7 ~]#systemctl restart smb
验证:
在windows中cmd命令界面输入\192.168.243.7 可查看共享目录

这里写图片描述

多用户samba挂载

创建共享目录
[root@centos7 ~]#mkdir /storage
[root@centos7 ~]#chmod o+w /storage/
创建多用户
[root@centos7 ~]#useradd sarah
[root@centos7 ~]#useradd kitty
[root@centos7 ~]#smbpasswd -a sarah
[root@centos7 ~]#smbpasswd -a kitty
设置用户对应ACL权限

[root@centos7 ~]#setfacl -m u:sarah:r-x /storage/ [root@centos7 ~]#setfacl -m u:kitty:rwx /storage/ 

samba服务器配置
[root@centos7 ~]#vim /etc/samba/smb.conf

46 [share] 47 path=/storage 48 browseable=yes 49 valid users=sarah,kitty 50 writable=no 51 write list=kitty 

[root@centos7 ~]#systemctl restart smb

在desktop客户端上执行
多用户挂载方式

[root@centos6 ~]#mkdir /samba/[root@centos6 ~]#yum -y install cifs-utils[root@centos6 ~]#mount -t cifs //192.168.243.7/share /samba -o username=sarah  [root@centos6 ~]#mount -t cifs //192.168.243.7/share /samba -o username=kitty     

这里写图片描述