当前位置: 首页 > 编程日记 > 正文

cifs------网络文件系统(1)

SMB文件共享

SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。

SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。

SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445

运行环境:

主机:       ip 172.25.254.1    172.25.1.250        [root@foundation1 ~]#

虚拟机:    (服务器端): ip  172.25.1.1                  [root@server1 ~]#

(客户端):  ip  172.25.1.2                 [root@server1 ~]#

Samba 服务的组成部分
Samba的支持文件:Samba-common
客户端应用程序:Samba-client
服务器应用程序:Samba
服务名称:smb nmb
主配置文件:/etc/samba/smb.conf

服务器端:

[root@server1 ~]# systemctl start smb           //开启smb服务
[root@server1 ~]# systemctl enable smb       //设置smb为开机自启
[root@server1 ~]# systemctl stop firewalld     //关闭防火墙
[root@server1 ~]# systemctl disable firewalld       //设置防火墙为开机不自启

[root@server1 ~]# netstat -antlp | grep smb          //查看smb的服务端口,进行共享所用的端口是 139 和 445

samba用户及密码的设置
// 因这里没有Samba密码服务器,所以必须在本地计算机上创建身份验证数据。

使用smbpasswd创建samba账户和密码
//smb用户必须是本地已经存在的用户

添加 smb 用户

smb 用户必须是本地用户
添加用户 student,westos

  1. smbpasswd 常用参数
    -a username: 添加用户为 samba 用户
    -d username:禁用 samba 用户 username
    -e username: 启用 samba 用户 username
    -x username: 删除 samba 用户 username

  2. pdbedit 常用参数
    –a username:新建 Samba 账户。
    –x username:删除 Samba 账户。
    –L:列出 Samba 用户列表,读取 passdb.tdb 数据库文件。
    –Lv:列出 Samba 用户列表的详细信息。
    –c “[D]” –u username:暂停该 Samba 用户的账号。
    –c “[]” –u username:恢复该 Samba 用户的账号。

[root@server1 ~]# useradd westos
[root@server1 ~]# id westos
uid=1001(westos) gid=1001(westos) groups=1001(westos)

[root@server1 ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student)

[root@server1 ~]# smbpasswd -a student         //给samba添加用户student,并设置密码,为方便记忆,我在这里设置密码为redhat

[root@server1 ~]# smbpasswd -a westos          //同样,添加用户westos并设置密码,这里设置为redhat

[root@server1 ~]# pdbedit -L            //查看samba用户有哪些

[root@server1 ~]# pdbedit -x westos          //删除samba用户
[root@server1 ~]# pdbedit -L        //再次查看时只有一个用户
student:1000:
[root@server1 ~]# smbpasswd -a westos           再次添加,添加成功

客户端:

[root@server2 ~]# yum install -y samba-client         //下载所需服务

[root@server2 ~]# smbclient -L //172.25.1.1           //列出服务器端samba服务的文件系统 ,,,这里输密码时直接回车就好,因为这里没有具体指定用户

[root@server2 ~]# smbclient  //172.25.1.1/student -U student            //指定用户student登陆文件系统

//此时用ls命令访问的话可能出现被拒的现象,可能原因为: selinux 拒绝访问

smbclient(选项)(参数)
                       -L:显示服务器端所分享出来的所有资源
                       -U <用户名称>:指定用户名称

服务器端:

[root@server1 ~]# getsebool -a | grep samba            //查看布尔值允许本地目录作为 cifs 文件共享的相关主目录

其中:

samba_enable_home_dirs               //布尔值允许本地Linux主目录作为CIFS文件共享导出至其他系统
use_samba_ home_dirs                   //布尔值允许挂载远程CIFS文件共享并将其用作本地Linux主目录
samba_share_t                                  //smb共目录的selinux安全上下文
samba_export_all _ro 和 samba_export_all_rw           //共享系统目录时要打开

[root@server1 ~]# setsebool -P samba_enable_home_dirs on
此时,客户端访问就不会再被拒了

客户端:

[root@server2 ~]# smbclient //172.25.1.1/student -U student             //ls可以正常访问

smb挂载

1、文件的上传:

只能上传当前所在目录下的文件,上传的文件在服务端的 student 用户的家目录

客户端:

首先找到客户端所需上传的文件所在目录,并切换到相应目录,再进行登陆;例:上传目录为/etc,上传文件为 /etc/passwd

[root@server2 ~]# cd /etc

[root@server2 etc]# smbclient //172.25.1.1/student -U student         //输入之前设置的密码

smb: \> !ls               //   !ls  即可列出本地文件及目录

......    //前面太多故省略

hosts.allow         profile.d           yum.conf
hosts.deny         protocols           yum.repos.d
httpd             python
idmapd.conf         qemu-ga

smb: \> put passwd         //上传文件passwd成功

服务器端:

在服务器端查看,客户端已将文件上传至服务器端 的用户家目录内

[root@server1 ~]# cd /home/student/

[root@server1 student]# ls

//这种登陆方式登陆,不能执行新建文件、目录等操作///

2、临时挂载(手动挂载)

客户端:

[root@server2 etc]# mount //172.25.1.1/student /mnt/ -o username=student,password=redhat         //挂载成功

这样服务器端的用户家目录就挂载到了客户端的/mnt下面去

客户端执行

[root@server2 mnt]# touch file{1..5}                  //这种方式可以新建/删除目录、文件等
[root@server2 mnt]# ls
file1  file2  file3  file4  file5  passwd

[root@server2 mnt]# cd ..
[root@server2 /]# umount /mnt/          //取消挂载

此时,服务器端:

3、永久挂载(只需挂在一次)

方式一:如果服务没开,会影响系统启动,易损坏系统

客户端

[root@server2 /]# vim /etc/fstab

//172.25.1.1/student /mnt cifs defaults,username=student,password=redhat 0 0

[root@server2 /]# mount -a               //df查看是否挂载成功

方式二:在所有服务启动后,初始化的时候开始执行,因此不会影响系统启动(推荐使用)

前提是将第一种方法注释或者删除 :

1.    编辑/etc/fstab         //删掉刚加上的行

2.   [root@server2 /]# umount /mnt/        //取消挂载

3.    [root@server2 /]# df          //查看是否还挂载,确保不再挂载

客户端

[root@server2 /]# vim /etc/rc.d/rc.local

mount //172.25.2.1/student /mnt -o username=student,password=redhat

[root@server2 /]# chmod +x /etc/rc.d/rc.local           //给予执行权限

[root@server2 /]# reboot

[root@server2 /]# df             //查看,此时挂载成功

//172.25.1.1/student   17811456 1229488  16581968   7% /mnt

相关文章:

Swift 教學:如何使用iOS Charts API 製作漂亮的圖表

在應付許多的資料時&#xff0c;比起只在表格中呈現&#xff0c;使用圖表來顯示資料&#xff0c;可以幫助使用者容易地了解資訊。有了圖表&#xff0c;相對於讀取整個資料表&#xff08;或幾個資料表&#xff09;你可以輕鬆地一眼便見到以圖形表示的資料&#xff0c;取得所需的…

在Proteus中添加标号

1.Proteus中添加组件后双击引脚可以快速生成一个最近的端口。 2.按A调出设置界面 3.在String中写&#xff1a;netH#,"H"可以换成自定义前缀。count为起始值&#xff0c;increment为增量。 4.依次点击想要编号的引脚。转载于:https://www.cnblogs.com/viaduct/p/58424…

九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目

题目地址&#xff1a;http://ac.jobdu.com/problem.php?pid1525 题目描述&#xff1a; 小明手中有很多字符串卡片&#xff0c;每个字符串中都包含有多个连续的空格&#xff0c;而且这些卡片在印刷的过程中将字符串的每个子串都打印反了&#xff0c;现在麻烦你帮小明将这些字符…

cifs------网络文件系统(2)

接着上篇博客继续&#xff1a; Samba 基本配置 [rootserver2 ~]# rpm -qc samba-common //查看smb的配置文件 1、黑、白名单的设定 默认白名单&#xff0c;设置的ip是黑名单用户&#xff1a;hosts deny ip 默认黑名单&#xff0c;设置的ip是白名单用户&#xff…

iOS网络缓存扫盲篇--使用两行代码就能完成80%的缓存需求

原文地址&#xff1a;https://github.com/ChenYilong/ParseSourceCodeStudy/blob/master/02_Parse的网络缓存与离线存储/iOS网络缓存扫盲篇.md 目录 当我们在谈论缓存的时候&#xff0c;我们在谈论什么&#xff1f;GET网络请求缓存 80%的缓存需求&#xff1a;两行代码就可满足…

YARN集群维护部分问题汇总

云梯开发人员在云梯Yarn集群的搭建和维护过程中做了许多工作&#xff0c;本文选择这期间部分较为典型的问题&#xff0c;通过对这些问题的分析和解决方案&#xff0c;为大家分享分布式系统问题调查的经验。 调查的问题 1. 2013年初引入社区0.23时&#xff0c;调查ResourceManag…

linux系统管理及vim

1.管理输入输出 在linux系统中&#xff0c;正确输出的编号为1&#xff0c;错误输出编号为2 在系统中用普通用户执行 "student" find /etc -name passwd 因为student用户权限问题会有以下输出 find: ‘/etc/pki/CA/private’: Permission denied ##没有进入权力…

如何用 OS X 的 Xcode 写C语言程序

這篇是給新手看的。 如果你在 Windows 習慣使用 Visual C 或 Dev-C 的話&#xff0c;到了 Mac OS X 可能會突然不知道要怎麼寫程式&#xff0c;尤其當你已經用 Visual C 的 Debugger 用得很上手的話。 最近我們系上的課充滿了 C programming&#xff0c;我也稍微摸懂了 Xcode 的…

【转】初等数论 ——原根、指标及其应用

转自&#xff1a;http://blog.163.com/gc_chdch126/blog/static/172279052201641935828402/ 学习总结&#xff1a;初等数论&#xff08;3&#xff09;——原根、指标及其应用 2016-05-19 15:58:28| 分类&#xff1a; 信息学——学习总 | 标签&#xff1a;初等数论 数学 |…

互联网产品评论索引

这里收集一些评论文章&#xff0c;定期查看文章观点的正确性&#xff0c;索引持续更新中 网站前期如何获得推广资源 专访陶瑾&#xff1a;微信公众平台开发先行者转载于:https://www.cnblogs.com/needrunning/p/3000353.html

Apache服务器部署(1)

apache&#xff08;web服务器&#xff09;简介&#xff1a; Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;其跨平台和安全性被广泛使用&#xff0c;是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充&…

JavaScript关键字this指向

在js中this始终指向一个调用函数的那个对象 var a有种你干掉我啊; //纯粹调用函数 function test(){ console.log(this.a);//默认指向全局对象 } //test();//>windows.test() //作为对象的方法被调用 Function.prototype.logfunction(){ console.log(this.a); } //此时t为一…

项目开发过程中的收获与思考

2013年7月&#xff0c;我正式毕业了&#xff0c;到公司入职&#xff0c;也就正式成为了一名菜鸟程序员。到今天&#xff0c;2014年1月3日&#xff0c;目前主要的工作是公司一个项目中的一个功能模块&#xff0c;到我进入项目组算起&#xff0c;已经过了四个月了。因此&#xff…

【仿汽车之家】价格区间选择控件

仿照汽车之家iOS客户端“找车”栏目的价格区间选择控件&#xff0c;最终实现效果如下&#xff1a; 一、界面实现 *根据屏幕大小以及刻度的大小&#xff0c;宏定义需要用到的一些值 #define SCREENW [UIScreen mainScreen].bounds.size.width #define SCREENH [UIScreen mainScr…

Apache服务器部署(2)

签名CA证书 环境&#xff1a;server1:172.25.1.1 重置虚拟机 挂载yum源 [rootserver1 ~]# yum install mod_ssl -y //下载ssl模块 [rootserver1 ~]# yum install crypto-utils -y //安装加密软件 [rootserver1 ~]# genkey …

ASCII、Unicode、GBK和UTF-8字符编码的区别联系

一直对编码这块晕晕乎乎&#xff0c;今天终于看到一篇写的很清楚也很风趣的文章&#xff0c;转过来mark一下。 很久很久以前&#xff0c;有一群人&#xff0c;他们决定用8个可以开合的晶体管来组合成不同的状态&#xff0c;以表示世界上的万物。他们看到8个开关状态是好的&…

【iOS】快速集成轮播控件

自己写的一个轮播控件&#xff0c;初始化后只要实现两个数据源方法&#xff0c;几行代码就能快速集成&#xff0c;支持本地图片和网络图片&#xff0c;支持点击事件&#xff0c;可定制播放速度、指示器颜色/位置、默认加载图等&#xff0c;效果&#xff1a; 1.下载地址&#xf…

Hibernate中get方法和load方法的区别

一、get和load方法都是根据id去获得对应数据的&#xff0c;但是获得机制不同&#xff1a;如果使用get方法&#xff0c;hibernate会去确认该id对应的数据是否存在&#xff0c;它首先会去session中去查询(session缓存其实就hibernate的一级缓存)&#xff0c;如果没有&#xff0c;…

DNS高速缓存

DNS相关资料&#xff1a; 1.什么是DNS DNS&#xff08;Domain Name System域名系统&#xff09; 是互联网上存储域名和ip映射关系的一个分布式数据库&#xff0c;它负责把域名转换成ip地址&#xff0c;或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。 2.什么是高速…

将时间改为显示:几天前,几小时前,或者几分钟前

&#xff08;原博客地址&#xff1a;http://blog.csdn.net/kenhins/article/details/38010811&#xff09; 方法一&#xff1a; 个人做法是保存时间戳&#xff0c;然后在前端用jq插件做转换&#xff0c;比如 smart-time-ago ----------------------------------------------- 方…

支持placeholder和自适配高度的TextView控件

一.应用于项目的效果如下&#xff1a; 二.使用方法&#xff1a; 1.导入JXTextView.h头文件 2.初始化,并添加到view中&#xff1a; JXTextView *textView [[JXTextView alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];textView.placeholder "请输入内容";tex…

ZOJ 3735 dp

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode3735 好久没做DP题了&#xff0c;一开始没理解题目里的C(M,3)是干什么&#xff0c;原来就是组合&#xff0c;C M 取3&#xff0c;就等于n*&#xff08;n-1&#xff09;*&#xff08;n-2&#xff09;/6;题目里还有…

haproxy实现高可用及负载均衡

Haproxy简介&#xff1a; Haproxy是一个使用c语言编写的自由开发源代码软件&#xff0c;它提供高可用性、负载均衡、以及基于http和tcp的应用程序代理。Haproxy特别使用于那些负载特别大的web站点。Haproxy运行在当前的硬件上&#xff0c;完全可以支持数以万计的并发连接&#…

Apache转发到Tomcat

#vi /etc/httpd/conf/httpd.conf 添加下面配置 NameVirtualHost *:80 <VirtualHost *:80>ProxyPreserveHost OnServerName www.域名.comProxyPass / http://www.域名.com:8080/system/ErrorLog logs/error_logCustomLog logs/access_log common</VirtualHost> 作者…

.net基础问题

string sqlstr "select BranchCode,BranchName from t_sys_Branch where Jglx_DataDm{0} and IsVisible1"; sqlstr string.Format(sqlstr, departType); 上述代码运行之后 sqlstr"select BranchCode,BranchName from t_sys_Branch where Jglx_DataDmdepartTyp…

【iOS】NSDate分类,获得中国农历

1.说明&#xff1a; 参考网上代码写的一个分类&#xff0c;只需一句代码就可得到NSDate对象所对应的中国农历、星期。 2.使用方法&#xff1a; &#xff08;1&#xff09;导入分类头文件&#xff1a; #import "NSDateChineseDate.h"&#xff08;2&#xff09;NSDat…

LVS_NAT实现负载均衡

简介&#xff1a; 基于NAT机制实现。当用户请求到达director之后&#xff0c;director将请求报文的目标地址(即VIP)改成选定的realserver地址&#xff0c;同时将报文的目标端口也改成选定的realserver的相应端口&#xff0c;最后将报文请求发送到指定的realserver&#xff1b;…

自定义Push和Pop过渡动画

一、效果和源码 本文介绍如何实现一个NavigationController的自定义Push和Pop过渡动画&#xff0c;运行效果如下&#xff1a; 源码&#xff1a;https://github.com/dolacmeng/TransitionDemo 或http://download.csdn.net/detail/dolacmeng/9572384二、准备工作 首先&#xff0…

centos 安装 mysql 5.7

一&#xff0c;wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm 二&#xff0c;yum localinstall mysql57-community-release-el6-8.noarch.rpm 三&#xff0c;yum install mysql-server 四&#xff0c;mysqld --initialize --usermysql 五&#xf…

c语言:婚礼上的谎言

/* 三对新人参加婚礼&#xff0c;三位新郎A,B,C,三位新娘X,Y,Z。 有人想知道谁与谁结婚&#xff0c;于是就问他们&#xff1a; A说他将和X结婚&#xff1b; X说他的未婚夫是C&#xff1b; C说他将和Z结婚。 这人时候知道他们都在说谎。编程求谁与谁结婚&#xff01; */ /* 思路…