• samba共享服务-多用户挂载smb共享


    1、服务端部署,system1上执行:

    1.1安装软件包并确保服务开机启动

    [root@system1 ~]# yum install samba sambaclient ‐y

    [root@system1 ~]# systemctl enable smb.service nmb.service

    1.2设定防火墙

    [root@system1 ~]# firewallcmd ‐‐permanent ‐‐add‐service=samba

    [root@system1 ~]# firewallcmd ‐‐reload

    1.3编辑配置文件

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

    (按大写字母 G 键来到文件底部,然后按字母 o 键在新的一行添加以下配置)

    [devops]  客户端访问的共享名

    path = /devops 指定共享目录的路径

    hosts allow = 172.24.8.  定义可访问这个共享主机

    browseable = yes 是否允许所有用户浏览此共享,默认为yes,no为隐藏

    writable = no  <‐‐‐‐‐ writeable  是等价的设置是否开放共享目录可写的权限,默认不开启

    write list = akira 指定用可写用户列表,多用户时,用短号分隔

    # read only = no 和writable=no等价

    # display charset = UTF-8 编码设置

    # unix charset = UTF-8

    # create mode = 0777

    # force create mode = 0777

    create mode:这个配置定义新创建文件的属性。Samba在新建文件时,会把dos文件的权限映射成对应的unix权限,在映射后所得的权限,会与这个参数所定义的值进行与操作。然后再和下面的force create mode进行或操作,这样就得到最终linux下的文件权限。force create mode相当于此参数所设置的权限位一定会出现在文件属性中;将权限设置成0777时,不同用户创建的文件均可被其他用户读写操作。

    # directory mode = 0777

    # force directory mode = 0777 

    directory mode :这个配置与create mode参数类似,只是它是应用在新创建的目录上。Samba在新建目录时,会把dos–>linux映射后的文件属性,与此参数所定义的值相与,再和force directory mode相或,然后按这个值去设置目录属性;将权限设置成0777时,不同用户创建的文件均可被其他用户读写操作。

    # create mask = 0644     在网络上新建文件的初始权限,只有writeable=yes时预设值才有效。

    # directory mask = 0755   在网络上新建目录的初始权限,只有writeable=yes时预设值才有效。

    # valid users = fred 指定允许访问共享的用户列表,如果为空,表示谁都可访问,多用户时用用短号分隔

    # comment = Printer Drivers 共享描述

    # public = yes/no   public用来指定该共享是否允许guest账户访问。

    # guest ok = yes/no  意义同“public”。

    1.4建立用户

    [root@system1 ~]# useradd -s /sbin/nologin silene

    [root@system1 ~]# useradd -s /sbin/nologin akira

    [root@system1 ~]# smbpasswd a silene

    New SMB password:redhat

    Retype new SMB password:redhat

    Added user silene.

    [root@system1 ~]# smbpasswd a akira

    New SMB password:redhat

    Retype new SMB password:redhat

    Added user akira.

    [root@system1 ~]#pdbedit –L *列出smb用戶

    注:printf "passwd\npasswd\n" | smbpasswd -a -s akira 一次性配置密码

    1.5设定目录并设定selinux

    [root@system1 ~]# mkdir /devops

    [root@system1 ~]# semanage fcontext a t 'samba_share_t' '/devops(/.*)?'

    [root@system1 ~]# restorecon ‐Rv /devops

    [root@system1 ~]# setfacl Rm u:akira:rwx /devops/  

    注:-R 递归修改目录及目录所有权限

    1.6重启服务

    [root@system1 ~]# systemctl restart smb nmb

    2、客户验证, system2 上执行

    2.1安装软件

    [root@system2 ~]# yum install cifsutils ‐y

    2.2建立挂载点

    [root@system2 ~]# mkdir /mnt/dev

    2.3查看共享

    [root@system2 ~]# smbclient L //172.24.8.11/ U silene

    Enter silene's password:

    ...

    Sharename   Type  Comment

    ‐‐‐‐‐‐‐‐‐       ‐‐‐‐    ‐‐‐‐‐‐‐

    Common     Disk

    Devops      Disk

    2.4编辑fstab增加持久挂载

    [root@system2 ~]# vim /etc/fstab

    .....在文件最后一行增加以下配置....

    //172.24.8.11/devops/ mnt/dev cifs defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0

    以读写模式临时挂:

    mount -t cifs -o username=smbuser,password='hangshu',iocharset=utf8,dir_mode=0777,file_mode=0777 //172.24.8.11/devops/ /mnt/dev

    2.5测试

    [root@system2 ~]# mount a

    [root@system2 ~]# df ‐h

    ......

    //172.24.8.11/devops  9.8G  3.2G  6.7G  32% /mnt/dev

    [root@system2 ~]# su  silene

    bash4.2$ cd /mnt/dev

    bash4.2$ cifscreds add 172.24.8.11

    Password:

    bash4.2$ touch testfile

    touch: cannot touch  testfile: Permission denied <‐‐‐‐  可以读但不能写

    bash4.2$ exit

    [root@system2 ~]# su  akira

    bash4.2$ cd /mnt/dev

    bash4.2$ cifscreds add 172.24.8.11

    Password:

    bash4.2$ ls

    bash4.2$ touch testfile <‐‐‐可以创建文件

    bash4.2$ ls

    testfile

    bash4.2$ exit

  • 相关阅读:
    Java题目详解——LeetCode203. 移除链表元素
    代码随想录刷题Day53 | 1143. 最长公共子序列 | 1035. 不相交的线 | 53. 最大子数组和
    云原生部署手册01:构建k8s集群并配置持久化存储
    操作系统之启动过程
    【C++ Boost库】原始计时器
    [MongoDB]-权限验证管理
    easyRL学习笔记:强化学习基础
    e^x的导数
    面试十三、malloc 、calloc、realloc以及new的区别
    linux开发常用命令
  • 原文地址:https://blog.csdn.net/beck_li/article/details/139613438