samba 服务

匿名 (未验证) 提交于 2019-12-02 23:42:01

课程目标

  • samba服务器的应用场景及特点
  • samba服务器的搭建与配置
  • 基于用户名/密码的企业综合案例

  • SMB(Server Message Block)协议实现文件共享,也称CIFS(Common Internet File System)
  • 是Windows和Unix系统之间共享文件的一种协议
  • 客户端主要是Windows;支持多节点同时挂载以及并发写入
  • 主要用于Windows和Linux下的文件共享、打印共享
  • 实现匿名与本地用户文件共享
  • smbd进程 控制发布共享目录与权限、负责文件传输 TCP 139 455
  • nmbd进程 用于名称解析netbios UDP 137 138;基于NETBIOS协议获得计算机名称--->解析为相应IP地址,实现信息通讯。

NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API


配置文件

[root@server ~]# yum -y install samba [root@server ~]# rpm -qa |grep ^samba samba-winbind-3.6.9-164.el6.x86_64 samba4-libs-4.0.0-58.el6.rc4.x86_64 samba-winbind-clients-3.6.9-164.el6.x86_64 samba-3.6.9-164.el6.x86_64 samba-client-3.6.9-164.el6.x86_64 samba-common-3.6.9-164.el6.x86_64  [root@server ~]# service smb start Starting SMB services:                                     [  OK  ] [root@server ~]# service nmb start Starting NMB services:                                     [  OK  ]  测试验证 [root@client ~]# which smbclient /usr/bin/smbclient [root@client ~]# rpm -qf /usr/bin/smbclient samba-client-3.6.9-164.el6.x86_64 查看配置文件   /etc/samba/smb.conf  [global]    全局选项         workgroup = MYGROUP     定义samba服务器所在的工作组         server string = Samba Server Version %v     smb服务的描述         log file = /var/log/samba/log.%m        日志文件         max log size = 50       日志的最大大小kb         security = user    认证模式:share匿名|user用户密码|server外部服务器用户密码         passdb backend = tdbsam  密码格式         load printers = yes      加载打印机         cups options = raw       打印机选项 [homes]     局部选项(共享名称)  (默认共享本地用户家目录)         comment = Home Directories      描述         browseable = no     隐藏共享名称         writable = yes      可读可写 [printers]  共享名称         comment = All Printers      描述         path = /var/spool/samba     本地的共享目录         browseable = no     隐藏         guest ok = no       ---> public = no 需要账号密码访问(匿名用户不允许访问)         writable = no       ---> read only = yes 不可写         printable = yes     ---> 打印选项 
[root@client ~]# smbclient -L //10.1.1.2    //查看samba服务器的共享名 Enter root's password: 回车       //(匿名用户查看) Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]      Sharename       Type      Comment     ---------       ----      -------     IPC$            IPC       IPC Service (Samba Server Version 3.6.9-164.el6) Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]      Server               Comment     ---------            -------     SERVER               Samba Server Version 3.6.9-164.el6      Workgroup            Master     ---------            -------     MYGROUP              SERVER  在server端添加本地用户zhangsan 将zhangsan本地用户加入到smb数据库 [root@server ~]# smbpasswd -a zhangsan New SMB password: Retype new SMB password: Added user zhangsan. 在客户端测试 [root@client ~]# smbclient //10.1.1.2/zhangsan -U zhangsan Enter zhangsan's password:  Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6] smb: \> ls  需求:让匿名用户访问/samba/share共享资源,本地用户不能访问  [anon_share]         path=/samba/share         public = yes         writable = yes [root@server ~]# service smb restart  测试: [root@client ~]# smbclient -L 10.1.1.2 Enter root's password:  Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]      Sharename       Type      Comment     ---------       ----      -------     anon_share (列出该共享标签名) [root@client ~]# smbclient //10.1.1.2/anon_share    //进入该共享标签 Enter root's password:  Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6] smb: \> ls 匿名用户写文件被拒绝,在server端修改/samba/share的权限 [root@server share]# ll -d drwxr-xr-x 2 root root 4096 Apr 23 21:06 . [root@server share]# chmod o+w /samba/share/ 另外匿名用户不需要加入samba数据库 让zhangsan访问/anon_share,本地用户可以访问,匿名用户访问的开关可控制 [root@client ~]# smbclient //10.1.1.2/anon_share -U zhangsan Enter zhangsan's password:  Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6] smb: \> ls  总结: 1. samba服务默认是基于用户名和密码认证的服务 2. samba服务的用户必须是samba服务器上存在的用户,密码必须是samba数据库里的密码 3. 对于发布的共享资源,默认情况下本地用户是可以访问的,匿名用户是否能访问看是否打开public=yes  samba也可以用挂载的方式在客户端对共享目录进行操作 [root@client ~]# mount mount        mount.fuse   mount.nfs4   mountstats    mount.cifs   mount.nfs    mountpoint   mount.tmpfs   [root@client ~]# mount.cifs -o user=zhangsan,pass=123 //10.1.1.2/anon_share /u01 [root@client ~]# df -h Filesystem             Size  Used Avail Use% Mounted on /dev/sda5               16G  3.7G   12G  25% / tmpfs                  491M   72K  491M   1% /dev/shm /dev/sda1              194M   30M  155M  16% /boot /dev/sda3              2.0G   37M  1.8G   2% /home /dev/sr0               4.2G  4.2G     0 100% /media //10.1.1.2/anon_share   16G  3.8G   12G  26% /u01 已经挂载好了 [root@client ~]# cd /u01 [root@client u01]# ls aaa [root@client u01]# touch 1.txt [root@client u01]# ls 1.txt  aaa 在客户端操作,结果都会在server端出现 [root@server share]# ls 1.txt  aaa 

Windows访问,比较简单,在文件资源管理器我的电脑那一栏输入\\10.1.1.2,回车后输入zhangsan和密码123,即可在该目录里进行创建文件夹等操作。

控制读写权限     writable = yes/no     readonly = yes/no 如果资源可写,但只允许某些用户可写,其他都只读 write_list = admin,root,@staff(用户组) read_list = mary,@students  控制访问对象     valid_users = tom mary     invalid_users = tom 注意:这两个选项只能存在其中一个  网络访问控制 host_deny = 192.168.0   拒绝某个网段 host_allow = 192.168.0.254  允许某个IP hosts_deny = all    拒绝所有 hosts_allow = 192.168.0. EXCEPT 192.168.0.254   允许某个网段,但拒绝某个IP 注意:deny和allow同时存在,优先allow 

综合案例:

公司:itcast,有3个部门,cw,rs,sc和一个公共区pub,每个部门的资料根据如下需求进行共享;

1、财务部门/samba/itcast_cw,cw01财务总监有可读可写权限,财务员工可读,boss01对其有管理权限

2、市场部门/samba/itcast_sc,市场部门员工可读可写,公司员工可以查询资料,boss02对其有管理权限

3、HR部门/samba/itcast_rs,rs01HR总监可读写,HR部门员工可对财务部查询,vip用户可以查询

4、休息区/samba/itcast_pub 自己管理自己的文件

步骤: 1.在服务器上创建相应目录,来保存不同部门资料 mkdir /smb/{cw,rs,sc,pub} -p 2.创建相应的用户组(方便管理) groupadd itcast groupadd cw groupadd rs groupadd sc  useradd cw01 -g cw -G itcast useradd cw02 -g cw -G itcast useradd rs01 -g rs -G itcast useradd rs02 -g rs -G itcast useradd sc01 -g sc -G itcast useradd sc02 -g sc -G itcast useradd boss01 -g itcast useradd boss02 -g itcast useradd vip   3.修改相应目录的权限  4.搭建samba服务,来共享不同部门的资料 vim /etc/samba/smb.conf ... [cw]     path=/smb/cw     valid_users = boss01,@cw,@rs     write_list = cw01,boss01 [rs]     path=/smb/rs     valid_users = vip,@rs     write_list = rs01 [sc]     path=/smb/sc     valid_users = boss02,@itcast     write_list = @sc,boss02 [pub]     path=/smb/pub     valid_users = @itcast     writable = yes  5.将用户加入到smb数据库里 smbpasswd -a cw01 ...... 6.测试验证 Linux: Windows: 

总结:

  1. ftp 局域网 安全
  2. nfs 局域网 挂载访问 mount.nfs
  3. samba 局域网 直接服务(smbclient) | 挂载访问(mount.cifs)大部分客户端是Windows

Windows server 2008 ---> *.dp (数据库文件)

Linux Oracle

Windows server : xshell---> Linux 导入导出

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!