linux运维-samba

SAMBA(Server Message Block)
文件服务器之:samba服务器

1.
作用:
    提供cifs协议实现文件共享,让文件在window和unix like两个不同的操作系统平台沟通
   
2.samba
所使用的服务及一些基础设置:
       软件包:
    samba-commom        ##samba的支持文件
    samba-client        ##客户端应用程序
    samba           ##服务器应用程序
       服务:
    nmbd:这个服务的主要功能是用来管理工作组,NetBIOS Name等的解析。主要利用udp协议开启137,138端口来负责名称的解析的任务
    smbd:这个服务是用来管理SAMBA主机的共享目录,文件与打印机等,主要利用TCP协议传输,开放的端口为139和445
       基础设置:

    /etc/samba/smb.conf ##是samba的主配置文件,基本模型如下:
         [global]
       
参数项目 = 设置内容
        ...

         [
共享资源名称]
        参数项目 = 设置内容

        ...
       
    /etc/sysconfig/samba    ##
提供启动smbd,nmbd还想加入的相关服务参数

3.
实验:
    1).安装samba服务
     yum install samba samba-common samba-client -y
     systemctl start smb nmb
     systemctl enable smb nmb
linux运维-samba

linux运维-samba   

 

 2).添加smb用户
     smb用户必须是本地用户
     smbpasswd -a student  ##添加一个本地用户为smb用户

     pdbedit -L        ##
查看smb用户信息
     pdbedit -x        ##删除smb用户
linux运维-samba   

3).共享目录的基本设定
    vim /etc/samba/smb.conf     ##samba服务的主配置文件
     [public] 共享名称(自定义)
     comment = 对共享目录的描述
     path = 共享目录的绝对路径

     **
当共享目录为用户自建立目录时
linux运维-samba

linux运维-samba


linux运维-samba
linux运维-samba   

虽然能登陆smb用户但是在服务端和和客户端都无法看到目录里所建立的文件,这是因为在建立目录时,没有修改安全上下文的原因
    修改新建目录的安全上下文之后重新操作;
    semanage fcontext -a -t samba_share_t'目录名称(/.*)?'   ##修改自建立目录的安全上下文

    或chcon -R -tsamba_share_t 目录名称   
    restorecon -RvvF 目录名称

linux运维-samba

linux运维-samba 
    **当共享目录为系统建立目录

    samba_export_all_ro --> on
    samba_export_all_rw --> on


    4).samba的配置参数

    #匿名用户访问
        guest ok = yes
        map to guest = bad user
        systemctl restart smb
linux运维-samba

linux运维-samba


linux运维-samba
linux运维-samba   

 #访问控制
        hosts allow = ip    ##仅允许某个ip访问


linux运维-sambalinux运维-samba

        hosts deny = ip      ##仅拒绝某个ip访问

linux运维-samba

linux运维-samba       

 valid users = westos    ##当前共享的有效用户为westos
            useradd westos
            smbpasswd -a westos
            客户端测试:

             smbclient //172.25.254.122/public -Uwestos
linux运维-samba

linux运维-samba


linux运维-samba       

validusers = @westos 或 +westos  ##当前共享的有效用户为westos组
            smbclient//172.25.254.122/haha -U student
            usermod -G westosstudent
           
客户端测试:
             smbclient //172.25.254.122/haha -Ustudent
linux运维-samba

linux运维-samba

  linux运维-samba

linux运维-samba

  5).读写控制
    所有用户均可写
    chmod o+w /smbshare
    setsebool -P samba_export_all_rwon
    vim /etc/samba/smb.conf
    writeable = yes
linux运维-samba


linux运维-samba
linux运维-samba   

测试:mount -ousername=westos,password=westos //172.25.254.222/haha /mnt
        cd /mnt
           

    设定指定用户可写

    write list = student    ##可写用户
linux运维-samba

linux运维-samba        write list = +westos    ##可写用户组

    write list = @westos    ##可写用户组
linux运维-samba

linux运维-samba


linux运维-samba
linux运维-samba    admin users = westos    ##共享的超级用户
               
linux运维-samba

linux运维-samba    6.smb多用户挂载

    在client上
    vim /root/haha
    username=studnet
    password=westos
linux运维-samba
    chmood 600 /root/haha
    yum install cifs-utils -y
    mount -ocredentials=/root/haha,multiuser,sec=ntlmssp //172.25.254.122/haha /mnt
 
    #credentials=/root/haha 指定挂载时所用到的用户文件

    #multiuser      支持多用户认证
    #sec=ntlmssp        认证方式为标准smb认证方式

    su - kiosk
    ls /mnt
    ls
:cannotaccess /mnt:Permission denied    ##因为没有做smb的认证所以无法访问smb共享
    cifscreds add -u westos172.25.254.122
    Password:   ##smb
用户westos的密码
    ls /mnt

linux运维-samba

 

linux运维-samba