热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

配置SMB文件夹共享多用户Samba挂载普通NFS共享的实现

#useraddsamba#passwdsambapassword#smbpasswd-asamba 1案例1:配置SMB文件夹共享1.1问题本例要求在虚拟机server0上发布两

# useradd samba

# passwd sambapassword

# smbpasswd -a samba
 

1 案例1:配置SMB文件夹共享

1.1 问题

本例要求在虚拟机 server0 上发布两个共享文件夹,具体要求如下:

 

此服务器必须是 STAFF 工作组的一个成员

发布目录 /common,共享名为 common

发布目录 /devops,共享名为 devops

这两个共享必须是可浏览的,只有 example.com 域内的客户端可以访问

用户 harry 对共享 common 只读,密码是 migwhisk

用户 kenji 对共享 devops 只读,密码是 atenorth

用户 chihiro 对共享 devops 可读写,密码是atenorth

1.2 方案

Samba的用途:为多个客户机提供共享使用的文件夹。

 

Samba服务端:软件包samba、系统服务smb

 

Samba客户端:软件包samba-client和cifs-utils、客户端工具smbclient

 

传输协议及端口:TCP 139、TCP 445

 

Samba服务端配置文件:/etc/samba/smb.conf

 

Samba共享账号:存在独立的账号数据文件里,必须有同名系统账号(方便给权限)

 

Samba账号管理工具:

 

pdbedit -a 用户名

pdbedit -L [用户名]

pdbedit -x 用户名

测试Samba共享资源:

 

smbclient -L 服务器地址 【密码为空(直接回车)】

smbclient -U 用户名 //服务器地址/共享名 【需要密码】

1.3 步骤

实现此案例需要按照如下步骤进行。

 

步骤一:在服务器server0发布Samba共享文件夹

 

1)安装软件包samba

 

[root@server0 ~]# yum -y install samba

.. ..

2)创建共享账号

 

添加共享账号harry,密码为migwhisk:

 

[root@server0 ~]# useradd harry

[root@server0 ~]# pdbedit -a harry                 //根据提示设好密码migwhisk

new password:

retype new password:

添加共享账号kenji,密码为atenorth:

 

[root@server0 ~]# useradd kenji

[root@server0 ~]# pdbedit -a kenji                 //根据提示设好密码atenorth

new password:

retype new password:

添加共享账号chihiro,密码为atenorth:

 

[root@server0 ~]# useradd chihiro

[root@server0 ~]# pdbedit -a chihiro             //根据提示设好密码atenorth

new password:

retype new password:

确认共享账号:

 

[root@server0 ~]# pdbedit -L

harry:1003:

chihiro:1005:

kenji:1004:

3)准备共享文件夹

 

[root@server0 ~]# mkdir /common

[root@server0 ~]# mkdir /devops

[root@server0 ~]# setfacl -m u:chihiro:rwx /devops         //配置写入权限

4)调整SELinux开关策略,允许发布可写的Samba共享资源

 

[root@server0 ~]# getsebool -a | grep ^samba_exp         //默认配置

samba_export_all_ro --> off

samba_export_all_rw --> off

[root@server0 ~]# setsebool -P samba_export_all_rw=on         //永久打开设置

[root@server0 ~]# getsebool -a | grep ^samba_exp         //查看结果

samba_export_all_ro --> off

samba_export_all_rw --> on

5)配置共享目录

 

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

[global]

workgroup = STAFF

.. ..

[common]

path = /common

hosts allow = 172.25.0.0/24

[devops]

path = /devops

hosts allow = 172.25.0.0/24

write list = chihiro

6)启动系统服务smb,并设置开机自启

 

[root@server0 ~]# systemctl restart smb

[root@server0 ~]# systemctl enable smb

ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'

[root@server0 ~]# netstat -antpu | grep smb

tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 4709/smbd

tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 4709/smbd

步骤二:在客户机desktop0测试Samba共享资源

 

1)安装软件包samba-client

 

[root@server0 ~]# yum -y install samba-client

.. ..

2)浏览目标主机提供了哪些共享资源

 

[root@desktop0 ~]# smbclient -L server0.example.com

Enter root's password:                         //此处无需输入密码,直接回车

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

    Sharename Type Comment

    --------- ---- -------

    common Disk

    devops Disk

    IPC$ IPC IPC Service (Samba Server Version 4.1.1)

Anonymous login successful

Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

    Server Comment

    --------- -------

    Workgroup Master

    --------- -------

3)连接到目标主机的共享目录

 

[root@desktop0 ~]# smbclient -U harry //server0.example.com/common

Enter harry's password:                             //输入harry的密码

Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]

smb: \> ls                                         //检查是否可列出目录内容

. D 0 Sun Nov 27 03:07:29 2016

.. D 0 Sun Nov 27 03:07:32 2016

        40913 blocks of size 262144. 27826 blocks available

smb: \> quit                                         //退出smb:\>交互环境

[root@desktop0 ~]#

2 案例2:多用户Samba挂载

2.1 问题

本例要求在虚拟机 desktop0 上访问 server0 提供的共享 devops,特性如下:

 

将此共享永久挂载在 /mnt/dev 目录

挂载时以用户 kenji 作为认证

必要的时候,任何普通用户都可以通过用户 chihiro 来临时获取写的权限

2.2 方案

Samba客户端的multiuser挂载:支持切换访问Samba共享的用户身份,但不需要重新挂载共享资源。挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。

 

在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。

 

为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。

 

2.3 步骤

实现此案例需要按照如下步骤进行。

 

步骤一:挂载Samba共享目录

 

1)创建挂载点

 

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

2)安装cifs-utils软件包

 

[root@desktop0 ~]# yum -y install cifs-utils

.. ..

3)配置开机挂载

 

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

.. ..

//server0.example.com/devops /mnt/dev cifs username=kenji,password=atenorth,_netdev     0     0

4)测试挂载配置

 

[root@desktop0 ~]# mount -a

[root@desktop0 ~]# df -hT /mnt/dev

Filesystem Type Size Used Avail Use% Mounted on

//server0.example.com/devops cifs 10G 3.2G 6.8G 32% /mnt/dev

步骤二:启用multiuser多用户支持

 

1)修改挂载配置,添加多用户支持

 

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

.. ..

//server0.example.com/devops    /mnt/dev    cifs    username=kenji,password=atenorth,multiuser,sec=ntlmssp,_netdev 0 0

[root@desktop0 ~]# umount /mnt/dev                 //卸载此共享

[root@desktop0 ~]# mount /mnt/dev                 //重新挂载此共享

2)验证多用户访问

 

切换到普通用户student验证,无权访问挂载点/mnt/dev:

 

[root@desktop0 ~]# su - student

Last login: Sun Nov 27 03:51:32 CST 2016 on pts/0

[student@desktop0 ~]$ ls /mnt/dev

ls: cannot access /mnt/dev: Permission denied

以共享用户chihiro身份提交新的访问凭据,再次验证,对挂载点/mnt/dev可读写:

 

[student@desktop0 ~]$ cifscreds -u chihiro add server0.example.com

Password:                                         //输入共享账号chihiro的密码

[student@desktop0 ~]$ touch /mnt/dev/a.txt

[student@desktop0 ~]$ ls /mnt/dev/a.txt

/mnt/dev/a.txt

3 案例3:普通NFS共享的实现

3.1 问题

本例要求在虚拟机 server0 上配置NFS服务,完成以下任务:

 

只读的方式共享目录 /public,只能被 example.com 域中的系统访问

可读写共享目录/protected,能被 example.com 域中的系统访问

然后在虚拟机 desktop0 上访问NFS共享目录

 

将 server0 的 /public 挂到本地 /mnt/nfsmount

这些文件系统在系统启动时自动挂载

3.2 方案

对于普通NFS共享来说:

 

服务端需要运行系统服务 nfs-server.service

客户端不需要运行特定的系统服务

配置NFS共享目录的记录格式:

 

文件夹绝对路径        客户地址1(ro或rw等控制参数) 客户地址2(ro或rw等控制参数) .. ..

3.3 步骤

实现此案例需要按照如下步骤进行。

 

步骤一:在server0上发布NFS共享目录

 

1)准备需要共享的文件夹

 

[root@server0 ~]# mkdir /public

[root@server0 ~]# mkdir /protected

2)建立NFS共享配置

 

[root@server0 ~]# vim /etc/exports

/public 172.25.0.0/24(ro)

/protected 172.25.0.0/24(rw)

3)启动系统服务nfs-server,并设置开机自启

 

[root@server0 ~]# systemctl restart nfs-server

[root@server0 ~]# systemctl enable nfs-server

ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

步骤二:在desktop0上挂载NFS共享目录/public

 

1)创建挂载点

 

[root@desktop0 ~]# mkdir /mnt/nfsmount

2)列出server0上提供的NFS共享资源

 

[root@desktop0 ~]# showmount -e server0.example.com

Export list for server0.example.com:

/protected 172.25.0.0/24

/public 172.25.0.0/24

3)配置开机挂载server0的NFS共享目录/public

 

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

.. ..

server0.example.com:/public /mnt/nfsmount nfs _netdev 0 0

4)测试挂载配置

 

[root@desktop0 ~]# mount -a

[root@desktop0 ~]# df -hT /mnt/nfsmount/

Filesystem Type Size Used Avail Use% Mounted on

server0.example.com:/public nfs4 10G 3.2G 6.8G 32% /mnt/nfsmount

 



推荐阅读
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
author-avatar
风一样的男孩668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有