【N25第十三周作业】samba配置详解和安装

samba:
  功能:
    文件系统共享:类unix系统和windows系统之前文件系统共享
    打印机共享;
    NetBIOS协议;

  服务端程序包:samba
    nmbd:NetBIOS name server
    smbd:SMB/CIFS services
  主配置文件:/etc/samba/smb.conf

  systemd unit file:
    nmbd:nmb.service
    smbd:smb.service

  客户端程序包:samba-client
    smbclient:交互式的命令行客户端;
    mount -t cifs:

  监听端口:137/upd,138/udp,139/tcp,445/tcp

samba配置:smb.conf
两类配置段:
  全局配置:[global]
    每共享的专用配置:[共享资源的共享名称]

    directive = value

  全局配置:
    workgroup = 
        当前samba主机所属工作组
    netbios name = 
        当前samba主机的netbios名称
    server string = 
        主机注释
    display charset = 
        当前samba服务器所用字符集
    unix charset = 
        当前linux主机所用的字符集
    dos charset = 
        windows端的字符集
    interfaces = 
        samba服务监听的IP地址或网络接口
    hosts allow = 
        客户端来源白名单

    log file = /var/log/samba/log.%m
        日志存放位置
    max log size = 50
        日志文件大小上限,单位KB

standalone server options
    security = user
        设定安全级别,取值以下三者之一
            share:匿名共享
            user:使用samba服务自我管理的帐号和密码进行认证,用户必须是OS用户,
            密码是访问samba的专用密码
            domain:使用DC进程认证,
    passdb backend = tdbsam
        密码库文件的格式

共享配置:
[共享名称]:此几位某共享服务名
    comment:注释信息
    path:此共享对应本地文件系统路径
    browseable:是否可浏览,是否可被所有用户看到
    writable:是否可写
    read only:是否为只读
    writelist:可写用户或组列表
        用户名
        @组名
        +组名
    guest ok :是否允许匿名访问
    public:是否是公开的服务

注意:writable和writelist不应该同时使用

可用的宏列表:    
    %m:客户端主机的NetBIOS名称    
    %M:客户端的Internet主机名,即HOSTNAME    
    %H:当前用户的家目录    
    %U:当前用户的用户名    
    %g:当前用户所属的组名    
    %h:当前SAMBA主机的HOSTNAME    
    %I:客户端主机IP    
    %T:当前的日期时间

交互式访问:
    #smbclient -L SABMA_SERVER -U USERNAME
    #smbclient //SAMBA_SERVER/SERVER_NAME -U USERNAME

挂在访问方式:
    mount -t cifs -o username=USERNAME,password=PASSWD  //SAMBA_SERVER/SHARED /MOUNT_DIR
    
例子:
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
        
将系统用户添加为samba用户:
     [option] USERNAME
        -a:添加        
        -x:删除        
        -d:禁用        
        -e:启用访问samba共享:
    unix:
        smbclient:交互式命令行客户端
        mount -t cifs:挂在文件系统
    windows:        
            //HOST OR IP/SHARED_DIR
            
      命令:类似smbpasswd,用户管理smb用户
    pdbedit [option]:
        -L:列出所有的smb用户        
        -v:verbose        
        -a:添加用户        
        -u USERNAME        
        -x:删除指定用户        
        -r:修改用户的粗信息
        
    命令:
    显示samba server的相关共享的访问状态
        -b:显示简要格式信息        
        -v:显示详细格式信息

安装samba配置要求:

1、建立samba共享,共享目录为/data,要求:(描述完整的过程)
  1)共享名为shared,工作组为magedu;
  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,
  ubuntu不属于develop组;密码均为用户名;
  3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;
  4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
  5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

安装步骤如下:

yum info samba.x86_64      #查看samba包的信息
yum -y install samba.x86_64   #安装samba服务
rpm -ql samba       #查看samba安装后的文件
groupadd develop    #添加develop组
useradd  -G develop gentoo      #添加gentoo用户并给它指定附加组develop
useradd  -G develop centos      #添加centos用户并给它指定附加组develop
useradd ubuntu                  #添加ubuntu用户
echo "gentoo" | passwd --stdin gentoo   #添加密码
echo "centos" | passwd --stdin centos
echo "ubuntu" | passwd --stdin ubuntu
smbpasswd -a centos    #为samba服务添加centos用户,此处需要输入密码我设置为centos
smbpasswd -a gentoo  #此处需要输入密码我设置为gentoo
smbpasswd -a ubuntu #此处需要输入密码我设置为ubuntu
mkdir /data     #建分享目录
chmod g+w /data #修改分享目录的组写权限
chown :develop /data    #修改分享目录的数组
ls -dl /data/       #确认修改是否成功

vim /etc/samba/smb.conf     #在配置文件中添加分享配置
全局配置添加如下
[global]
        workgroup = magedu        
        server string = Samba Server Version %v
        netbios name = MYSERVER        
        hosts allow = 192.168.0.0/16
分享目录配置如下
[shared]        
                comment = data
        path = /data
        public = no
        valid users = gentoo centos ubuntu @develop
        write list = @develop        
        read list =  ubuntu
        writable = yes
        printable = no
        
systemctl stop firewalld.service    #关闭防火墙
setenforce 0        #关闭selinux
getenforce          #查看关闭情况
systemctl start smb.service     #启动smb服务
systemctl start nmb.service     #启动nmb服务


连接需要安装samba的客户端smbclient和一些依赖的包,不然会报错
[root@localhost ~]# smbclient -L 192.168.1.110 -U gentoo
smbclient: relocation error: /lib64/libsamba-credentials.so.0: 
symbol GSS_KRB5_CRED_NO_CI_FLAGS_X, version gssapi_krb5_2_MIT not 
defined in file libgssapi_krb5.so.2 with link time reference

yum -y install samba-client     #安装samba客户端
yum install krb5-devel krb5-libs pam_krb5 krb5-workstation -y   #安装客户端依赖的相关包
systemctl stop firewalld.service    #关闭防火墙
setenforce 0            #关闭selinux
getenforce              #查看关闭情况
smbclient -L 192.168.1.110 -U gentoo        #检测
smbclient //192.168.1.110/shared -U gentoo  #交互式连接server端并指定用户

[root@localhost ~]# smbclient //192.168.1.110/shared -U gentoo
Enter gentoo's password: 
Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> ls
  .          D        0  Fri Dec 16 06:36:41 2016
  ..         DR        0  Fri Dec 16 06:36:41 2016

		52403200 blocks of size 1024. 50839544 blocks available
smb: \> 
smb: \> mkdir gentoo
smb: \> ls
  .      D        0  Fri Dec 16 07:02:02 2016
  ..     DR        0  Fri Dec 16 06:36:41 2016
  gentoo    D        0  Fri Dec 16 07:02:02 2016

		52403200 blocks of size 1024. 50839580 blocks available
smb: \> lcd /etc
smb: \> put fstab 
putting file fstab as \fstab (176.1 kb/s) (average 176.1 kb/s)
smb: \> ls
  .      D        0  Fri Dec 16 07:02:20 2016
  ..     DR        0  Fri Dec 16 06:36:41 2016
  gentoo   D        0  Fri Dec 16 07:02:02 2016
  fstab   A      541  Fri Dec 16 07:02:20 2016

		52403200 blocks of size 1024. 50839888 blocks available
smb: \> exit
[root@localhost ~]# smbclient //192.168.1.110/shared -U ubuntu
Enter ubuntu's password: 
Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> ls
  .    D        0  Fri Dec 16 07:02:20 2016
  ..   DR        0  Fri Dec 16 06:36:41 2016
  gentoo  D        0  Fri Dec 16 07:02:02 2016
  fstab  A      541  Fri Dec 16 07:02:20 2016

		52403200 blocks of size 1024. 50839420 blocks available
smb: \> mkdir ubuntu    #ubuntu不在组中没有写权限
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ubuntu


mount -t cifs -o username=centos,passwd=centos  //192.168.1.110/data   /data


先关闭电脑的防火墙
在文件路径中输入    \\192.168.1.110
然后用gentoo登录:
登录后创建文件111.txt到服务器上目录中查看
[root@localhost data]# ls
111.txt  fstab  gentoo

原创文章,作者:sheng,如若转载,请注明出处:http://www.178linux.com/64034

(0)
上一篇 2016-12-18 16:02
下一篇 2016-12-18 16:53

相关推荐

  • Linux基础命令 2017-07-12日课

    bc, lscpu, free, dd, rpm, lsblk, ldd, file, hexdump, uname, sha1sum, sha256sum, md5sum bc an arbitrary precision language scale=NUM ; precision quit lscpu display information about…

    Linux干货 2017-07-12
  • Linux程序包管理rpm、yum、源码编译

    概述:     众所周知,Linux操作系统本身,必须要借助额外的一些软件,才能完成某些应用的,操作系统如果没有应用程序的填充,就无法创造出生产力,这样即使再完美的操作系统,也毫无用处。那么本章就简要介绍一下Linux系统上对程序包的管理,分为以下三个部分:     1、程序包的…

    Linux干货 2016-08-24
  • Bash Shell编程初学基础篇之一

     Bash Shell编程初学基础篇之一 说明: 本文仅供初学Linux  Bash  shell学员参考学习,大神们如有兴趣请批评指正!!!    相信对于很多Linux初学者或者仅仅是听说Linux还没有接触过的同学会有一种神秘感或者不敢碰触的感觉,今天就帮大家揭开它的神秘面纱,其实并没有那么深不可测,只…

    Linux干货 2015-03-29
  • 源码安装http

    http://xxlii.blog.51cto.com/10277731/1841570     哈哈!

    Linux干货 2016-08-24
  • 千里眼–用NFS和Samba实现共享网页文件

     目的:使用网络文件系实现LAMP的分步式资源共享 配置过程– 搭建nfs服务器:(centos 6.8) 安装yum install mysql-server nfs-utils httpd #这里安装httpd是为了方便后面共享文件的属主属组定义 启动nfs服务 #service nfs start  mkdir /dat…

    2017-04-30
  • M20 – 1- 第三周博客(3):Linux上文本处理三剑客grep

    Grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 1、作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用 权限是…

    Linux干货 2016-08-08