zoukankan      html  css  js  c++  java
  • Linux学习93 跨平台共享服务-samba服务基础应用与进阶

    一、上集续

      1、共享文件系统配置

        a、[SHARED_NAME]

        b、有三类

          (1)、[homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录

          (2)、[printers]:定义打印服务

          (3)、[shared_fs]:定义共享的文件系统

        c、常用指令

          comment:注释信息

          path:当前共享所映射的文件系统路径

          browseable:是否可浏览,指是否可被用户查看

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

          public:是否公开所有用户

          writable:是否可写

          read only:是否为只读

          white list:拥有写权限的用户列表

            用户名

            @组名

            +组名

      2、samba用户管理

        a、smbpasswd

          smbpasswd [options] USERNAME

            -a:添加

            -x:删除

            -d:禁用

            -e:启用

        b、pdbedit

          -L:列出samba服务中的所有用户。(在服务端执行)

            

          -a,--create:添加用户为samba用户

            -u,--User=USER:要管理的用户

            

          -x,--delete:删除用户;

            

          -t,--password-from-stdin:从标准输出接收字符串作为用户密码

            使用空提示符,而后将密码输入两次。(功能太菜鸡)

        c、查看服务器端的共享

          smbclient -L SMB_SERVER [-U USERNAME]

        d、交互式文件访问

          smbclient //SMB_SERVER/SHARE_NAME [-U USERNAME]

        e、挂载访问:

          mount -t cifs //SMB_SERVER/SAHRE_NAME -o username=USERNAME,password=PASSWORD

          注意:挂载操作的用户,与-o选项中指定用户直接产生映射关系;

            此时,访问挂载点,是以-o选项中的username指定的用户身份运行;本地用户对指定的路径访问,首先得拥有对应的本地系统权限。

      3、smbstatus命令

        a、显示samba服务的相关共享的访问状态信息

          -b:显示简要格式信息

          -v:显示详细格式信息

    [root@www /]# smbstatus 
    
    Samba version 4.6.2
    PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
    ----------------------------------------------------------------------------------------------------------------------------------------
    13582   smbuser3     smbuser3     192.168.10.14 (ipv4:192.168.10.14:36960)  NT1               -                    -                    
    
    Service      pid     Machine       Connected at                     Encryption   Signing     
    ---------------------------------------------------------------------------------------------
    myfiles      13582   192.168.10.14 四 5月 28 17时20分28秒 2020 CST -            -           
    IPC$         13582   192.168.10.14 四 5月 28 17时20分28秒 2020 CST -            -           
    
    No locked files
    
    [root@www /]# smbstatus -b
    
    Samba version 4.6.2
    PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
    ----------------------------------------------------------------------------------------------------------------------------------------
    13582   smbuser3     smbuser3     192.168.10.14 (ipv4:192.168.10.14:36960)  NT1               -                    -                    
    [root@www /]# smbstatus -v
    using configfile = /etc/samba/smb.conf
    
    Samba version 4.6.2
    PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
    ----------------------------------------------------------------------------------------------------------------------------------------
    13582   smbuser3     smbuser3     192.168.10.14 (ipv4:192.168.10.14:36960)  NT1               -                    -                    
    
    Service      pid     Machine       Connected at                     Encryption   Signing     
    ---------------------------------------------------------------------------------------------
    myfiles      13582   192.168.10.14 四 5月 28 17时20分28秒 2020 CST -            -           
    IPC$         13582   192.168.10.14 四 5月 28 17时20分28秒 2020 CST -            -           
    
    No locked files

      4、实验

        a、我们在我们192.168.10.13上创建目录/data/samba/files

    [root@www /]# mkdir -pv /data/samba/files
    mkdir: 已创建目录 "/data/samba"
    mkdir: 已创建目录 "/data/samba/files"

        b、然后我们编辑配置文件/etc/samba/smb.conf,添加相应的配置信息,并测试语法是否有问题,然后我们重启服务

    [root@www /]# cat /etc/samba/smb.conf |grep -EA5 "[myfiles]"
    [myfiles]
        comment = A test shared dir
        path = /data/samba/files
        public = yes
        writable = yes
        browseable = yes
    [root@www /]#
    [root@www /]# testparm 
    Load smb config files from /etc/samba/smb.conf
    rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
    Processing section "[homes]"
    Processing section "[printers]"
    Processing section "[myfiles]"
    Loaded services file OK.
    Server role: ROLE_STANDALONE
    
    Press enter to see a dump of your service definitions
    
    # Global parameters
    [global]
        interfaces = lo ens33
        server string = Samba Server Version %v
        workgroup = MYGROUP
        log file = /var/log/samba/log.%m
        max log size = 50
        security = USER
        idmap config * : backend = tdb
        cups options = raw
        hosts allow = 127. 192.168.10.
    
    
    [homes]
        comment = Home Directories
        browseable = No
        read only = No
    
    
    [printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = No
        printable = Yes
    
    
    [myfiles]
        comment = A test shared dir
        path = /data/samba/files
        guest ok = Yes
        read only = No
    [root@www /]#
    [root@www /]# systemctl restart nmb.service smb.service

        c、现在我们在客户端192.168.10.14上

          (1)、查看

    [root@node2 ~]# smbclient -L 192.168.10.13 -U smbuser1
    Enter SAMBAsmbuser1's password: 
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    
        Sharename       Type      Comment
        ---------       ----      -------
        myfiles         Disk      A test shared dir
        IPC$            IPC       IPC Service (Samba Server Version 4.6.2)
        smbuser1        Disk      Home Directories
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    
        Server               Comment
        ---------            -------
    
        Workgroup            Master
        ---------            -------
        MYGROUP              WWW

          (2)、访问时我们发现我们可以查看,但是没法上传,这是因为虽然共享权限没问题,但是我们文件权限有问题

    [root@node2 ~]# smbclient //192.168.10.13/myfiles -U smbuser1
    Enter SAMBAsmbuser1's password: 
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    smb: > ls
      .                                   D        0  Thu May 28 15:59:27 2020
      ..                                  D        0  Thu May 28 15:59:27 2020
    
            17811456 blocks of size 1024. 11438732 blocks available
    smb: > lcd /etc/
    smb: > put fstab
    NT_STATUS_ACCESS_DENIED opening remote file fstab
    smb: >

          (3)、我们查看我们/data/samba/files目录,可以看到其他用户没有写权限,并且属主和属组都是root,因此我们需要将属主改为samba这个用户。当然我们也可以使用facl权限,设定我们smbuser1拥有读写执行权限。然后重启服务

    [root@www /]# ls -ld /data/samba/files/
    drwxr-xr-x 2 root root 6 5月  28 15:59 /data/samba/files/
    [root@www /]# setfacl -m u:smbuser1:rwx /data/samba/files/
    [root@www /]# getfacl /data/samba/files/
    getfacl: Removing leading '/' from absolute path names
    # file: data/samba/files/
    # owner: root
    # group: root
    user::rwx
    user:smbuser1:rwx
    group::r-x
    mask::rwx
    other::r-x
    [root@www /]# !syst
    systemctl restart nmb.service smb.service

          (4)、然后我们重启后再次在192.168.10.14上执行上传操作,发现就可以了

    [root@node2 ~]# smbclient //192.168.10.13/myfiles -U smbuser1
    Enter SAMBAsmbuser1's password: 
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    smb: > lcd /etc/
    smb: > put fstab
    putting file fstab as fstab (37.8 kb/s) (average 37.8 kb/s)
    smb: >

      3、我们设置有限用户才有写权限

        a、在/etc/samba/smb.conf中配置相应的参数,并且重启服务

    [root@www /]# cat /etc/samba/smb.conf |grep -EA5 "[myfiles]"
    [myfiles]
        comment = A test shared dir
        path = /data/samba/files
        public = yes
        browseable = yes
        write list = smbuser1 #如果有多个的话在后面写即可
    [root@www /]#
    [root@www /]# systemctl restart nmb.service smb.service

        b、此时就算我们smbuser2对目录有写权限也是没法写的,因为我们在配置文件中配置了权限的

        c、如果我们期望smbuser1和smbuser2都有访问权限还有另外一种方法,我们创建一个组后让组对目录有写权限,我们组内所有用户也就都有相应的权限了。

          (1)、我们首先创建一个组并且定义组对这个目录有写权限

    [root@www /]# groupadd smbgrp
    [root@www /]# setfacl -m g:smbgrp:rwx /data/samba/files/
    [root@www /]# getfacl /data/samba/files/
    getfacl: Removing leading '/' from absolute path names
    # file: data/samba/files/
    # owner: root
    # group: root
    user::rwx
    user:smbuser1:rwx
    group::r-x
    group:smbgrp:rwx
    mask::rwx
    other::r-x

          (2)、我们创建smbuser3和smbuser4并加入到smbgrp组中

    [root@www /]# useradd -G smbgrp smbuser3
    [root@www /]# useradd -G smbgrp smbuser4

          (3)、接下来我们定义其在samba级拥有写权限

    [root@www /]# cat /etc/samba/smb.conf |grep -EA5 "[myfiles]"
    [myfiles]
        comment = A test shared dir
        path = /data/samba/files
        public = yes
        browseable = yes
        write list = +smbgrp

          (4)、我们现在将smbuser3和smbuser4加入samba用户并且重启服务

    [root@www /]# smbpasswd -a smbuser3
    New SMB password:
    Retype new SMB password:
    Added user smbuser3.
    [root@www /]# smbpasswd -a smbuser4
    New SMB password:
    Retype new SMB password:
    Added user smbuser4.
    [root@www /]# systemctl restart nmb.service smb.service

          (5)、我们现在尝试在192.168.10.14上通过smbuser3用户访问,可以看到能够上传了

    [root@node2 ~]# smbclient -L 192.168.10.13 -U smbuser3
    Enter SAMBAsmbuser3's password: 
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    
        Sharename       Type      Comment
        ---------       ----      -------
        myfiles         Disk      A test shared dir
        IPC$            IPC       IPC Service (Samba Server Version 4.6.2)
        smbuser3        Disk      Home Directories
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    
        Server               Comment
        ---------            -------
    
        Workgroup            Master
        ---------            -------
        MYGROUP              WWW
    [root@node2 ~]# smbclient //192.168.10.13/myfiles -U smbuser3
    Enter SAMBAsmbuser3's password: 
    Domain=[WWW] OS=[Windows 6.1] Server=[Samba 4.6.2]
    smb: > lcd /etc/
    smb: > put group
    putting file group as group (110.9 kb/s) (average 110.9 kb/s)
    smb: >

      3、我们通过mount.cifs进行挂载

        a、我们将其挂载至/mnt目录下

    [root@node2 ~]# mount -t cifs //192.168.10.13/myfiles /mnt -o username=smbuser3,password=123456
    [root@node2 ~]# mount |grep 192.168.10.13
    //192.168.10.13/myfiles on /mnt type cifs (rw,relatime,vers=1.0,cache=strict,username=smbuser3,domain=WWW,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.10.13,unix,posixpaths,serverino,mapp
    osix,acl,rsize=1048576,wsize=65536,echo_interval=60,actimeo=1)
    [root@node2 ~]# cd /mnt/
    [root@node2 mnt]# ls
    fstab  group
    [root@node2 mnt]# cp /etc/issue ./
    [root@node2 mnt]# ll
    total 12
    -rwxr--r-- 1 5022 5023 465 May 28 16:49 fstab
    -rwxr--r-- 1 5024 5026 795 May 28 17:14 group
    -rw-r--r-- 1 5024 5026  23 May 28 17:22 issue
    [root@node2 mnt]#

        b、我们可以看到,我们在本地通过root复制过去的文件的属主属组id为192.168.10.13上的smbuser3的相应的属主属组id。这是因为我们挂载时是通过smbuser3用户登陆的,我们创建文件时默认是将相应的用户映射至smbuser3上的。

          (1)、我们查看192.168.10.13上smbuser3相应的id对比上面就可以看出来

    [root@www /]# id smbuser3
    uid=5024(smbuser3) gid=5026(smbuser3) 组=5026(smbuser3),5025(smbgrp)

          (2)、如果我们使用非root用户,如果这个用户对当前目录没有写权限也是不能创建相应的文件的。

    二、博客作业

  • 相关阅读:
    elasticsearch-搜索-定位搜索(十一)
    redis-缓存设计-自动延迟调度,最热商品缓存(二)
    20200925
    20175312 2018-2019-2 实验一《Java开发环境的熟悉》实验报告
    20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第一周:阶段性总结)
    20175312 2018-2019-2 《Java程序设计》第5周学习总结
    20175312陶光远 与 20175309刘雨恒 结对
    20175312 2018-2019-2 《Java程序设计》第4周学习总结
    20175312 2018-2019-2 《Java程序设计》第3周学习总结
    20175312 2018-2019-2 《Java程序设计》第2周学习总结
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/12982641.html
Copyright © 2011-2022 走看看