精华内容
下载资源
问答
  • 问题描述: 使用ES文件浏览器的局域网功能,连接时无论如何输入帐号和密码都不能登入。 解决办法: 前置条件 首先确保输入的帐号是正确的,而且帐号是要本地帐号。 确保smb服务开启。 关键步骤 使用...

    问题描述:

    使用ES文件浏览器的局域网功能,连接时无论如何输入帐号和密码都不能登入。

    解决办法:

    前置条件

    1. 首先确保输入的帐号是正确的,而且帐号是要本地帐号。
    2. 确保smb服务开启。

    关键步骤

    1. 使用小娜的搜索框打开组策略。或者使用win键+r键打开运行,输入gpedit.msc打开。
    2. 依次点开【计算机配置】>【Windows设置】>【安全设置】>【本地策略】>【安全选项】>【网络访问:本地账户的共享和安全模型】。将其更改为“经典-对本地用户。。。”并确定保存。
    3. 重新尝试ES登入。
    展开全文
  • 浅谈文件描述符及文件系统

    千次阅读 2017-12-17 14:57:01
    之前在讲IO操作的时候,其中系统级IO中的open,write,read,close都用到了文件描述符(file descriptor),其中open的返回值为文件描述符,write、read和close都是在传参的时候需要传文件文件描述符。那么,文件...

    之前在讲IO操作的时候,其中系统级IO中的open,write,read,close都用到了文件描述符(file descriptor),其中open的返回值为文件描述符,write、read和close都是在传参的时候需要传文件的文件描述符。

    那么,文件描述符到底是个什么样的概念呢?
    简单地来说,文件描述符就是一个小整数,它是非负数,最小值为0,操作系统内核利用文件描述符来访问文件。而实际上,它是一个索引,指向内核为每一个进程所维护的该进程打开文件的记录表。当我们打开一个文件时,内核要在内存中创建数据结构来描述目标文件,于是便有了我们的file结构体,它表示一个已经打开的文件对象。而当进程执行open系统调用接口的时候,我们需要让进程和文件关联起来,每个进程都有一个文件指针*files,它指向一张文件结构表。这张表里最重要的东西就是一个指针数组,里面存放的都是指向各种文件的指针。而文件描述符,就是这个指针数组的下标。
    这里写图片描述

    从图中可以看到,系统在打开一个文件的时候,会先默认打开三个文件标准输入,标准输出,标准错误,它们三个分别占据了这个文件描述符数组的前三个,也就是下标0,1,2。这样我们新打开一个文件,这个文件的文件描述符只有被存放到3中了,那么一定是每次打开第一个文件,它的文件描述符都是3吗?我们通过一段代码来看一下。

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    int main()
    {
    	//close(0);
    	close(2);
    	int fd=open("close1",O_RDONLY);
    	if(fd<0)
    	{
    		perror("open!\n");
    		return 1;
    	}
    	printf("%d\n",fd);
    
    	close(fd);
    	return 0;
    }
    
    

    这里我们在程序一开始就关闭了文件描述符为0或2的文件(注意不能关1,当然其实也可以,只不过这样我们的结果就出不到终端窗口了,因为1是标准输出),看一下我们的结果
    这里写图片描述

    这里写图片描述
    我们可以看到,我们关了0,那么打开的文件的文件描述符即为0,;我们关了2,那么打开的文件的文件描述符即为2。由此可见,文件描述符的分配规则是,找到当前未被使用的最小的一个下标,作为新打开文件的文件描述符。

    关于输出重定向的问题
    之前我们说不能关闭1,因为会看不到结果,那么我们就要关闭1,会有什么结果呢?看代码

    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    int main()
    {
    	//close(0);
    	//close(2);
    	umask(0);
    	close(1);
    	int fd=open("close1",O_WRONLY|O_CREAT,0666);
    	if(fd<0)
    	{
    		perror("open!\n");
    		return 1;
    	}
    	printf("%d\n",fd);
    	fflush(stdout);
    
    	close(fd);
    	return 0;
    }
    
    

    这里写图片描述
    我们可以看到,本来是要输出到显示器上的内容,输出到了我们的文件close1当中,并且,该文件的fd为1,也就是我们关闭的标准输出的原始文件描述符。这叫做输出重定向,下面我们来看一下它的本质。
    这里写图片描述

    printf函数的输出结果一般是往标准输出输出的。但stdout在底层寻找文件的时候,还是找的fd=1的文件。这里原来fd=1的文件是stdout,但此时我们改成了close1,所以输出的任何信息都会往该文件中写入,实现了输出重定向。

    在这里顺便提下能够输出到显示器的函数printf,fwrite,write进行重定向时的区别
    printf和fwrite是C库函数,它们两个自带用户级别的缓冲区。当写入普通文件时,缓冲方式为全缓冲;当写入显示器时,缓冲方式为行缓冲。当进行了输出重定向后,在缓冲区中的数据不会被立即刷新,当进程退出的时候,会统一刷新。而write属于系统调用接口,它没有缓冲区。下面给一份代码来感受一下它们的区别:

    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    
    int main()
    {
    	char* msg1="pringf!\n";
    	char* msg2="fwrite!\n";
    	char* msg3="write!\n";
    
    	printf("%s",msg1);
    	fwrite(msg2,1,strlen(msg2),stdout);
    	write(1,msg3,strlen(msg3));
    
    	fork();
    	return 0;
    }
    

    输入结果如下
    这里写图片描述

    当我们把输出结果重定向到一个file文件中之后,再来看看结果
    这里写图片描述

    正如之前所说,在发生输出重定向之时,printf以及fwrite中的缓冲区并没有立即刷新,即便是调用了fork。fork之后,子进程会写时拷贝一份父进程的数据,所以当父进程准备刷新的时候,子进程也就有了同样的一份数据,便有了如上的两份数据。write并没有缓冲区,它是直接输出的,而且是第一个输出,因为别的都还在缓冲。

    关于文件系统

    Linux中有一个很重要的理念,即“一切皆文件”,任何目录,进程,命令,设备等,归根结底在Linux看来都是文件。它们被分成若干个基本存储单元,存放在磁盘的不同物理地址上,并具有特定的权限。

    那么既然任何东西都可以被看成是文件,操作系统就需要来管理文件,而文件系统,就是操作系统来管理文件的方式。简单的说,操作系统通过文件系统来管理分布在磁盘上的各个文件。

    通过stat指令可以查看文件的状态信息
    这里写图片描述
    上图中的Links表示该目录下有的链接数,如果该文件是目录,Links表示该目录还有多少目录(包括隐藏目录.和…);如果该文件是普通文件,Links表示指向该文件的硬链接数加上它本身(即如果有一个硬链接指向该文件,那么该文件的Links就是2)。该数也可以通过stat结构体的st_nlink字段获得

    这里我们需要解释几个概念
    磁盘 :存放文件的设备,如下图的/dev/sda
    这里写图片描述
    分区:磁盘上划分出来的空间,如下图的/dev/sda1
    这里写图片描述

    Block :块,是系统文件读写和存放数据的最小单位。每个Block里只能存放一个文件的数据。如果文件大于Block大小,则该文件会占用多个Block;如果文件小于Block大小,他也会完全占用该Block,剩余的空间也不会再被使用(磁盘空间会浪费)。因此,在对Block大小进行设置的时候要考虑当前系统存放的数据的特点,如果有很多小于Block大小的文件,格式化的时候却把Block设置成较大,这样会造成很多的磁盘空间浪费;反之,如果系统里以大文件居多,这时却把Block设置成较小,固然不会浪费磁盘空间,但也导致Block较多,影响读写性能。

    Sector :扇区,是磁盘控制器每次对磁盘进行读写的最小单位。扇区是最小的物理存储的单位,一般为512字节,由磁盘生产商确定,用户改不了。磁盘读到的Sectoer数据会先放在磁盘的缓存里,直到整个Block的所有Sector都缓存到了才会传输给内存,交由文件系统处理。

    超级块(super Block):也是一个block,用来记录文件系统的整体信息,包括 inode/block总量,使用量,剩余量,以及文件系统的格式与相关信息等

    indoe :这是一个非常重要的概念,是Linux非常厉害的一个设计。它将文件的属性,权限等和文件的数据分开存放。
    这里写图片描述

    下面我们来看一下操作系统是如何将文件的属性和数据分开来存放的。
    我们先创建一个新的文件,如下图所示(ls -i可以显示文件对应的i节点号)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uUdU4oIU-1608188736410)(https://img-blog.csdn.net/20171217123112831?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHZ5aWJpbjg5MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

    目录:也是文件的一种,自然也有自己的inode和block,目录的inode主要记录目录的属性,权限等,目录的block主要记录目录下的文件名和对应的inode
    这里写图片描述

    目录有以下属性:

    1.创建的时候会分配一个inode给目录,如果目录是空的,则不占用block,如果目录下文件过多,可能会占用多个block

    2.访问文件时,先访问文件所在目录的inode,验证是否有权限,如果有则访问对应父目录的block,获得该文件对应inode,验证是否有该文件的权限,若有则访问该文件的block

    3.父目录的inode从父目录的父目录获得!这样层层递推,Linux对所有文件的访问都是从最上层的根目录开始的

    4.根目录的inode是固定的,一般是2号inode,根目录的上层目录就是他自己

    存储一个文件的过程

    1. 内核先找到一个空闲的i节点,这里是137,把文件属性信息记录到其中。
    2. 内核在数据区找到几个空闲的磁盘块(假设需要三个磁盘块分别是300,500,800),将内核缓冲区的第一块数据复制到第一块磁盘块(300),往后以此类推,直到存完数据
    3. 文件内容按顺序300,500,800存放。内核在inode上的磁盘分布区记录了上述记录。
    4. 新的文件名为pigff,内核将入口(137,pigff)添加到目录文件。文件名和inode之间的对应关系将文件名和文件的内容及其属性连接起来(如上面目录的图)。

    从磁盘上读取一个文件的过程

    1. 程序调用read函数请求读文件
    2. read函数根据给的文件描述符参数,拿到对应文件的文件表项,在文件表项中拿到目录项模块,找到对应文件的inode
    3. 在inode中,根据文件表项中的偏移量计算出要读取的页
    4. 通过inode找到文件对应的address_space(该结构体是用来管理文件(struct inode)映射到内存的页面(struct page)的
    5. 在address_space中访问该文件的页缓存树,查找对应的页缓存节点:如果页缓存命中,那么直接返回文件内容;如果页缓存缺失,那么发生缺页异常,将会创建一个缓存页,通过inode找到文件该页的磁盘地址,读取相应的页填充该缓存页;然后重新查找缓存页
    6. 文件内容读取成功

    往文件里写文件的过程

    1. 程序调用write函数请求写文件

    2. write函数根据给的文件描述符参数,拿到对应文件的文件表项,在文件表项中拿到目录项模块,找到对应文件的inode

    3. 在inode中,根据文件表项中的偏移量计算出要往文件中写的页

    4. 通过inode找到文件对应的address_space

    5. 在address_space中访问该文件的页缓存树,查找对应的页缓存节点:
      a). 如果页缓存命中,那么直接把文件内容修改更新在页缓存的页中,写文件就结束了;这时候文件修改位于页缓存,并没有写回到磁盘文件中去
      b). 如果页缓存缺失,那么发生缺页异常,将会创建一个缓存页,通过inode找到文件该页的磁盘地址,读取相应的页填充该缓存页;然后重新查找缓存页

    6. 一个页缓存中的页如果被修改,那么会被标记成脏页。脏页需要写回到磁盘中的文件块。有两种方式可以把脏页写回磁盘:
      a). 手动调用sync()或者fsync()系统调用把脏页写回;
      b). pdflush进程会定时把脏页写回到磁盘;
      注意: 脏页不能被置换出内存,如果脏页正在被写回,那么会被设置写回标记,这时候该页就被上锁,其他写请求被阻塞直到锁释放。

    实际上读写文件发生了两次拷贝,从磁盘拷贝到页缓存,再从页缓存拷贝到用户空间。这期间都发生了系统调用,要从用户态切换到内核态。

    理解硬链接
    事实上,真正找到磁盘上的文件的并不是文件名,而是inode。我们通过硬链接可以让多个文件对应于同一个inode。目录没有硬链接。
    这里写图片描述
    这里写图片描述
    可以看到第一列,两个文件对应的inode都是137,它们被称为指向文件的硬链接。内核记录了这个链接数,inode137对应的硬链接数为2。每次新创建一个文件的时候在删除文件的时候,我们干了两件事:1.将目录中对应的记录删除。2.将文件的硬链接数-1,如果为0,则将对应的磁盘释放。

    在用mv命令为一个文件更名的时候,该文件的实际内容并未移动,只需要构造一个指向现有i节点的新目录项,并解除与旧目录项的链接。

    以便于简单理解,我们可以把硬链接理解为C++当中的引用。即硬链接的两个文件,实际上都是一个文件,tmp可以当作是pigff的别名。当我们修改其中一个文件的内容时,另一个文件也会随之修改。上图可以看到两者出了名字其余信息全部相同。
    这里写图片描述
    如上图,我们把ls的输出结果重定向到了tmp文件中,tmp文件的大小从之间的0变到了82,而同时pigff文件的大小也变为了82。
    总而言之,硬链接就是两个指向相同inode文件的文件,他们除了名字不同其他都相同。删除原文件,不会对硬链接文件有影响

    理解软链接
    硬链接是通过inode引用另外一个文件,软链接是通过名字引用另外一个文件。
    这里写图片描述
    如图我们在ln命令加一个-s选项,便是软链接,他有一个指向关系,从显示结果的第一列我们可以看到 lyb文件的类型是一个链接文件“l”。

    简单地理解,我们可以把软链接理解为Windows下常用的快捷方式,或者是复制了一份文件从而变成一份新的文件。当我们删除新的文件的时候,原文件不会随之删除,反之如果删除原文件,那么软链接就变成了死链接。

    动态库和静态库

    • 静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。我们用的最多的函数printf便是在链接的时候链接到可执行文件当中的。
    • 动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。
    • 一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标文件的整个机器码。
    • 在可执行文件开始运行之前,外部函数的机器码由操作系统从磁盘上的该动态库复制到内存中,这个过程称为动态链接。
    • 动态库可以在多个程序间共享,所以动态链接使得可执行文件更小,节省了磁盘空间。操作系统采用虚拟内存机制允许物理内存中的一份动态库被要用到该库的所有进程公用,节省了内存和磁盘空间。

    下面我们通过一段程序来生成静态库和动态库
    add.h
    这里写图片描述
    add.c
    这里写图片描述
    sub.h
    这里写图片描述
    sub.c
    这里写图片描述
    main.c
    这里写图片描述
    这里写图片描述

    生成静态库
    这里写图片描述
    ar是gnu归档工具,rc表示替换或创建
    t:列出静态库中文件
    v:详细信息

    这里写图片描述
    -L:指定库路径
    -l: 指定库名

    如上图,我们可以看到程序运行处了正确的结果,此时我们删除静态库,程序依然可以运行成功。
    这里写图片描述

    生成动态库

    • shared:表示生成共享库格式
    • fPIC:产生位置无关码
    • 库名规则:libxxx.so

    这里写图片描述

    使用动态库
    编译选项

    • L:链接库所在路径
    • l:链接动态库,只要库名即可(去掉lib以及版本号)
    gcc main.c -o main -L . -lmymath
    
    

    运行动态库

    • 拷贝.so文件到系统共享库路径下,一般是/usr/lib

    • 更改LD_LIBRARY_PATH
      这里写图片描述

    • ldconfig配置/etc/ld.so.conf.d/ , ldconfig更新
      在/etc/ld.so.conf.d目录中创建一个my.conf,里面只有一句话,就是刚才创建的动态库的路径/usr/lib/libmymath.so,保存退出后执行ldconfig。

    展开全文
  • Linux文件共享服务之Samba

    千次阅读 2018-09-17 17:57:44
    Samba最大的功能就是可以用于 Linux 与 windows 系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于 NFS(网络文件系统) 可以很好的完成...

    目录

    Samba

    Samba的配置


    Samba

    Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。而 CIFS(Common Internet File System)为SMB的跨平台版本,即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

    SMB的版本:

    SMB 1.0 (or SMB1) – The version used in Windows 2000, Windows XP, Windows Server 2003 and Windows Server 2003 R2
    展开全文
  • windows共享文件分析

    千次阅读 2018-06-12 09:11:44
    文件共享失败的原因以及解决办法  3.1 所在工作组不一样是否影响共享文件?  3.2 防火墙未正确设置  3.3 用户被禁用     3.3.1Guest用户被禁用    3.3.2其他用户被禁用的    3.4用户没有权限访问...

    1.本篇文章要解决的问题
    2.共享文件夹的一般过程
    3.文件共享失败的原因以及解决办法
      3.1 所在工作组不一样是否影响共享文件?
      3.2 防火墙未正确设置
      3.3 用户被禁用
        3.3.1Guest用户被禁用
        3.3.2其他用户被禁用的
        3.4用户没有权限访问
        3.5本地安全策略禁用
        3.6网卡的文件和打印机共享未打开。
        3.7系统使用了以前连接时缓存的账户访问
    4.额外知识
      4.1图1各个选项的总结说明。
      4.2 访问共享文件夹的两种方法
      4.3 net use的使用
      4.4 网卡属性解释
      4.5 网络发现依赖的服务和防火墙端口以及设置方法


    1、本篇文章要解决的问题

      在使用windows系统的过程中,我们一般共享文件夹主要是使用系统自带的功能。但是在共享的过程中往往会出现很多问题。按照网络上的教程,同样的操作可能有的人可以正确访问共享文件夹,有的人却不能访问。所以本篇文章主要是分析并解决与在Windows上共享文件夹相关的问题。在分析过程中还讲解了一些文件共享的机制以及额外的知识。出现的问题主要分为两大类,一个是无法访问,一个是无权限访问。由于共享文件涉及的内容比较多,所以建议大家从头开始看这篇文章,不要跳跃式看,否则可能会错过一些细节的地方导致无法成功共享文件夹。

    2、共享文件夹的一般过程

      在这里我先按照一般方法来设置文件夹共享,然后再在本文详细讲解各个部分设置的意义是什么。
    共享文件夹的一般步骤为:
    1.右键需要共享的文件夹,选"属性",按如下方法操作。
    windows共享文件分析
    2.打开“控制面板\网络和 Internet\网络和共享中心\高级共享设置 ”。启用“文件和打印机共享”和“关闭密码保护共享”。
    windows共享文件分析
    图1
    该图片中的内容在本文其他位置讲解和设置中要用到,请主机这里。

    3.文件共享失败的原因以及解决办法

    文件共享失败有如下几方面的原因:
    1.所在工作组不一样是否影响共享文件?
    2.防火墙未正确设置
    3.用户被禁用
    3.1Guest用户被禁用
    3.2其他用户被禁用的
    4.用户没有权限访问
    5.本地安全策略禁用
    6.网卡的文件和打印机共享未打开。
    7.系统使用了以前缓存的账户访问
    下面开始一个一个的分析。

    3.1 所在工作组不一样是否影响共享文件?

      在寻找解决与共享文件相关的问题时,经常看到有一些帖子中提出要先设置工作组以使共享文件夹和访问共享文件夹双方主机在同一工作组。经过测试,处于不同工作组的主机也是可以正常地共享文件的。

    3.2 防火墙未正确设置

      这里把防火墙放在第一位是因为大多数人的问题是防火墙相应的端口没有打开。要打开防火墙相应的端口有两种办法:
    1.在“控制面板\系统和安全\Windows 防火墙\允许程序或功能通过Windows防火墙”中把“文件和打印机共享”左边方框的对勾打上。这样便在防火墙中打开相应的共享端口。
    windows共享文件分析
    2.在图1中的“文件和打印机共享”中选择“启用文件和打印机共享”即可。
    windows共享文件分析
      其实“启用文件和打印机共享”也是在防火墙中打开相应的共享端口。上面两种方法的结果是一样的。只不过是设置的地方不一样。可以在“控制面板\系统和安全\Windows 防火墙”左侧栏中点击“高级设置”打开“高级安全Windows防火墙”。或者直接win + r 键入wf.msc打开。点击左侧栏的“入站规则”,在中间显示部分找到“文件和打印机共享”。可以看到有很多“文件和打印机共享”相关的规则。查看与当前网络位置相关的规则。即如果当前是在公用网络下则查看“配置文件”是公用的“文件和打印机共享”相关的规则。当前是在专用网络下则查看“配置文件”是专用的“文件和打印机共享”相关的规则。分别在前面两种设置防火墙的位置设置“文件和打印机共享”,看下几个选项有什么变化。主要看“已启用”那一列的变化。
    windows共享文件分析

    3.3 用户被禁用

    3.3.1Guest用户被禁用

      比较常见的问题的是Guest用户被禁用,因为新系统安装后默认情况下guest用户是被禁用的。在Windows系统中任何操作都是需要以某个用户身份进行的。对共享文件夹的访问也不例外。如果共享文件夹时添加了Everyone或者Guest,则通过网络访问时使用的用户身份默认是Guest。要启用Guest用户有两种方法。下面两种方法作用是一样的,只是设置的地方不同。
    1.右键“我的电脑”,选择“管理”。在“计算机管理\本地用户和组\用户”中右键“Guest”用户选择”属性“。把“账户已禁用”左边的对勾去掉即可。
    windows共享文件分析

    1. 按下“win + r”键入secpol.msc,打开“本地安全策略”。在“安全设置\本地策略\安全选项”中开启"Guest"账户。
      windows共享文件分析
        在上面两个地方设置的结果是更改了注册表。是由lsass.exe程序进行更改的。更改的位置为下面3个:
      1.HKLM\SAM\SAM\DOMAINS\Account\Users\000001F5\F
      2.HKLM\SAM\SAM\DOMAINS\Account\Users\000001F5\V
      3.HKLM\SAM\SAM\DOMAINS\Account\F
      windows共享文件分析
      windows共享文件分析
      其中000001F5为Guest用户的唯一标识符。这里要右键HKLM\SAM\SAM选择“权限”添加用户权限才可看到子项。
        有时会发现即使启用了Guest用户,在访问时也会弹出对话框提示用户名和密码。这是因为Windows系统下所有的操作都需以某个用户的身份运行的。所以直接输入Guest即可,不需输入密码。但如果为Guest设置了密码,还是要输入密码的。
        关于设置Guest密码和“密码保护共享”的问题。“密码保护共享”和Guest账户是相关联的。
      windows共享文件分析
      如果设置了密码则无法选择“关闭密码保护共享”。如果访问时没输入密码则会出现。
      windows共享文件分析
      如果没有设置密码却选择“启用密码保护”则Guest账户则会被禁用。访问时会出现
      windows共享文件分析

      3.3.2其他用户被禁用的

        在访问共享文件夹的时候可以使用的用户不只是Guest,只要是有权限的账户都可以。 所以如果使用被禁用的账户也是不可访问共享文件夹的。

      3.4用户没有权限访问

        要查看哪个账户有权限访问文件夹可以右键文件夹\属性\安全选项卡,查看各个用户和组的所拥有的权限。也可以分别编辑每个用户或组的权限。
      windows共享文件分析
      使用无权限用户访问时会出现
      windows共享文件分析

      3.5本地安全策略禁用

        本地安全策略有几个地方也影响了共享文件夹的访问。可按“win + r”或在开始菜单中输入secpol.msc打开本地安全策略,也可以直接在开始菜单中输入“本地安全策略”打开。
      1.windows共享文件分析
      如果把用户添加到“拒绝从网络访问这台计算机”并且使用该用户访问共享文件夹则可能出现以下错误:
      windows共享文件分析
      2.windows共享文件分析
      如果启用了以上“本地安全策略”项则可能会出现下列错误。
      windows共享文件分析

    3.6网卡的“Microsoft网络的文件和打印机共享”未打开

      遇到这个问题的概率比较低,但有时这里也会出现意想不到的错误。
      对于共享文件夹端的主机打开“控制面板\网络和 Internet\网络连接”,右键网卡,选择“属性”。可以看到“网络”选项卡下面“Microsoft网络的文件和打印机共享”。把该选项左边的对勾先取消按确定,然后再次进入把对勾选上按确定即可。
      对于访问共享文件夹端的主机也同样地操作“Microsoft网络客户端”。
      每个网卡都有相同设置。所以这里的设置是相对于每个网卡而言的,即可以设置连接本主机该网卡的网络设备可以访问共享文件夹,而连接本主机其他网卡的网络设备不可以访问该主机的共享文件夹。这对于有多网卡的主机有更灵活的配置。

    设置完后可能要重启网卡或者主机。

    windows共享文件分析

    3.7系统使用了以前连接时缓存的账户访问

      在第一次访问访问共享文件夹时需要提供用户名或者用户名和密码。在第一次访问成功后系统会自动记住访问该共享文件夹时使用的用户名和密码。在下一次访问共享文件夹时会自动使用该用户名和密码。在共享文件夹的主机更改设置时,比如更改用户的密码时。这个时候会出现没有权限访问的情况。如下图所示:
    windows共享文件分析
      这个时候可以删除先前系统自动保存的用户名和密码。可以使用net use命令删除。用法为先使用net use 命令查看当前的网络连接。然后使用net use \ComputerName /delete命令删除自动保存的用户名和密码即可。这里的ComputerName必须是主机名,不能是IP地址。如果不行可以重启一下访问共享文件夹端的主机网卡或主机。
    windows共享文件分析
    也可直接使用net use命令设置访问某个主机使用的用户名和密码。使用方法为:net use \IP地址 密码 \user:用户名

    4.额外知识

    4.1图1各个选项的总结说明。

    各个选项的作用在图1选项中已经有说明了,这里只做补充说明。
    1.网络发现
      此选项用于网络上其他主机是否可以在“网络”(以前的“网络邻居”)中看到该设备。如果禁用则无法看到,但还是可以直接在“Windows资源管理器”中输入ip地址进行访问,如\192.168.25.110,或者直接输入主机名\WIN-I4BTR51SSDT\进行访问。但是输入ip地址进行访问会比较快。
    2.文件和打印机共享
      此选项用于开启文件和打印机共享。使用的是smb协议。
    3.公用文件夹共享
      此选项用于是否共享公用文件夹,共享目录为C:\Users\Public。关闭此选项则在网络中的主机在“网络”中无法看到该共享目录,也无法访问。
    4.媒体流
      用于建立媒体库,共享图片,音频与视频。这里共享目录也是C:\Users\Public。使用的是DLNA协议。DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟)。可以在网络中另一台主机中通过Windows media player或者支持DLNA的网络设备访问媒体库。也可以在“windows 资源管理器”中“网络位置”一栏中查看媒体库。
    5.文件共享连接
      Windows 7 使用128位加密帮助保护文件共享连接。某些设备不支持128位加密,必须使用40或56位加密。
    6.密码保护的共享
      设置在网络主机访问本机共享文件夹时是否需要密码。

    4.1查看访问共享文件夹的用户和主机名以及访问的文件

      有时候我们会想查看有谁在访问我们的共享文件夹和访问哪些文件。这时候可以使用Windows系统自带的工具查看。按win + r 键输入compmgmt.msc或右键“我的电脑”,选择“管理”打开“计算机管理”控制台。
    在“计算机管理\共享文件夹\会话”中可以看到是哪台主机使用哪个账户访问共享文件夹。
    windows共享文件分析
    在“计算机管理\共享文件夹\打开文件”中可以看到查看了哪些文件。
    windows共享文件分析

    4.2 访问共享文件夹的两种方法

      访问共享文件夹有两种方法,第一种是直接在Windows资源管理器中的“网络”中查看。第二种是在Windows资源管理器中的地址栏中输入IP地址进行访问,如\\192.168.25.110

    4.3 net use的使用

      net use命令可以设置访问共享文件夹时使用的用户和密码。可以查看和断开当前已连接到的共享主机。

    • 使用net use查看当前已连接到的共享主机。
    • 使用net use \ComputerName /delete命令删除自动保存的用于该主机的用户名和密码。
    • 使用net use \IP地址 密码 \user:用户名命令设置连接到某主机时要使用的用户名和密码。
      windows共享文件分析
    • 使用“net use z: \WIN-I4BTR51SSDT\Users\paitouxi\Desktop\新建文件夹 123 /user:guest”命令添加一个网络命令,其中“z”为映射到本地的路径,即映射成功后在本地使用“z:\”即可访问该共享文件夹,“\WIN-I4BTR51SSDT\Users\paitouxi\Desktop\新建文件夹”为远程共享文件夹,“123”为密码,“guest”为用户名。可在“Windows 资源管理器”中的“网络位置”一栏中看到。
      windows共享文件分析

      4.4 网卡属性解释

      windows共享文件分析
        控制面板\网络和 Internet\网络连接中右键网卡选择“属性”即可打开网卡属性。从上图中可以看到有很多的选项。在用鼠标左键选择某一项时可以在该页面下方的描述中看到其作用。其中

    • Microsoft网络客户端
        用于访问共享文件夹。如果禁用则出现可以在“网络”中可以看到远程共享主机,但是无法访问。这个可以设置是否能访问与哪个网卡连接的局域网的主机的共享文件夹。可分别对每个网卡进行设置。
    • VMware Bridge Protocol
        这用于VMware workstation的虚拟机桥接到物理网络中。但是这只有在安装了VMware workstation时才会出现这个协议。这里不再讨论。
    • Microsoft网络的文件和打印机共享
        用于共享文件夹。如果禁用则网络中其他主机无法访问共享文件夹。这个可以设置共享文件夹能由与哪个网卡连接的局域网主机可以访问。可分别对每个网卡进行设置。
    • Qos 数据包计划程序
        打开“本地组策略编辑器” ,然后找到“计算机配置→管理模板→网络→QoS数据包调度程序”一项,Qos 数据包计划程序主要与这里相关。Windows 系统默认保留了20%的带宽。被保留的带宽是用于一种在Windows 2000里面引入的新技术——QoS(即:联网服务质量),而且,不是说这20%的带宽就一定会被占用,事实上,只有在使用了QoS应用程序编程接口编写应用程序需要访问网络的时候,才会利用到这20%的带宽。如果这些使用了QoS API的应用程序没有访问网络时,所保留的带宽仍然能够被其他应用程序所采用。组策略里面修改的数值指的是当使用了QoS API编写程序需要访问网络时能够使用的最大带宽量,如果我们设置为0%,那就意味着使用QoS API编写的应用程序不得不和其他应用程序争夺有限的带宽,可能产生的后果就是需要优先通信的数据没有得到优先权。当然,QOS这个本来用于改善网络质量的新技术也就丧失了意义。 可查看以下链接说明http://www.thewindowsclub.com/configure-reservable-bandwidth-settings-windows “在Windows 10 / 8.1中配置和限制可预留带宽设置”。也可直接更改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Psched给它数值数据0。如果Psched不存在,请创建它。
    • 链路层拓扑发现响应程序
        用于发现和定位网络中其他计算机和建立网络拓扑图。
    • 链路层拓扑发现映射器 I/O 驱动程序
        用于网络中其他计算机发现和定位自己所处位置和建立网络拓扑图。
      即通过这两个程序可以知道局域网中的电脑,经过的交换机,路由器。

      4.5 网络发现依赖的服务和防火墙端口以及设置方法

        网络发现需要启动 DNS 客户端、功能发现资源发布、SSDP 发现和 UPnP 设备主机服务,从而允许网络发现通过 Windows 防火墙进行通信,并且其他防火墙不会干扰网络发现。如果某些情况(但不是上述所有情况)属实,则网络发现状态将显示为“自定义”。
      依赖的服务DNS Client,Function Discovery Resource Publication,SSDP Discovery, UPnP Device Host,要使用网络发现,必须将这几个服务启动。
      打开“网络发现”防火墙端口有两个方法:
        1.打开“控制面板\网络和 Internet\网络和共享中心\高级共享设置 ”。启用“启用网络发现”。
        2.在“控制面板\系统和安全\Windows 防火墙\允许程序或功能通过Windows防火墙”中把“网络发现”左边的方框打上对勾。这样便在防火墙中打开相应的“网络发现”端口。
      这样就能在“网络”中查看到网络中其他支持smb协议的主机。网络上的其他主机也能看到这台主机。
        可以在“控制面板\系统和安全\Windows 防火墙”左侧栏中点击“高级设置”打开“高级安全Windows防火墙”。或者直接win + r 键入wf.msc打开。点击左侧栏的“入站规则”或“出站规则”,在中间显示部分找到“网络发现”。可以看到有很多网络发现项,可以查看网络发现所使用的端口。

    展开全文
  • 网络文件共享服务 - Samba详解

    千次阅读 2020-07-18 10:38:55
    SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过...
  • linux 共享内存 shm_open ,mmap的正确使用

    万次阅读 多人点赞 2019-11-06 11:30:53
     linux共享内存是通过tmpfs这个文件系统来实现的,tmpfs文件系的目录为/dev/shm,/dev/shm是驻留在内存 RAM 当中的,因此读写速度与读写内存速度一样,/dev/shm的容量默认尺寸为系统内存大小的一半大小,使用df -h...
  • 文件描述符操作

    千次阅读 2009-08-13 16:23:00
    1.复制文件描述符使用如下函数: #include int dup(int filedes);...此新的文件描述词和参数oldfd指的是同一个文件共享所有的锁定、读写位置和各项权限或旗标。例如,当利用lseek()对某个文件描述词作用
  • 我们假定第一个进程使该文件文件描述符3上打开,而另一个进程则使此文件文件描述符4上打开。打开此文件的每一个进程都得到一个文件对象,但对一个给定的文件只有一个v节点表项。每个进程都有自己的文件对象的一...
  • NetBIOS 下的文件共享机制

    千次阅读 2010-10-23 16:27:00
    Technorati 标签: Samba,NetBIOS,文件共享,PDC,AD,域 IBM 的 NetBIOS 在个人计算机和局域网发展的早期,为了在个人计算机上实现网络能力,Microsoft和IBM合作开发了一套协议NetBIOS,这是一套用于网络通讯的调用接口...
  • 一 : 关于Windows的默认共享介绍 网上其实到处都有谈论到,现我也只是整理一下: 在在Windows 系统中,在“我的电脑”上右击“管理”,依次选择“系统工具→共享文件夹→共享”,就会看到一些带有美元“$”标记的...
  • 解析Win XP操作系统文件共享

    千次阅读 2004-10-30 14:26:00
    通过资源共享,我们可以实现文件资料的交换。Windows XP是现在最流行的操作系统,今天,我们就一起看看在Windows XP下如何共享文件,同时为Windows 98和Window 2000系统不能访问Windows XP系统提出了解决方法。第...
  • windows访问Linux共享文件

    千次阅读 2014-08-25 22:25:07
    我们在做一些项目的时候,...我们都知道windows下有网络驱动器或者共享文件夹,可以帮助我们实现windows平台之间共享文件。如何才能在windows平台下和Linux之间共享文件呢?下面我们使用samba来实现我们需要的功能。
  • Samba是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS(NFS...
  • 解决Win XP文件和打印机共享问题

    千次阅读 2011-12-02 14:49:38
    解决Win XP文件和打印机共享问题 1、正确安装网络组件  首先右击网上邻居-属性,选择要共享的网卡。把IP设置在局域网的同一个网段上。比如192.168.0.X网段。然后看一下TCP/IP的高级属性中,是否开启NETBIOS 。...
  • 问题描述:虚拟共享文件的访问需要root权限,然后进行文件复制操作时,总是提示找不到对应的文件夹,也就是文件目录出错了。 解决方案:在未进入root权限时,我们一般在~/目录下进行操作;但在root权限下,访问此...
  •  1)、在每个进程表中都有一个记录项,记录项中包含有一张打开文件描述符表,可将其视察为一个矢量(数组),每个描述符占用一项。与每个文件描述符相关联的是:  (a)、文件描述符标志。  (b)、指向一个文件表项的...
  • XP局域网内共享不了文件

    千次阅读 2008-09-26 09:21:00
    此外,请安装相应的协议并正确的设置IP地址,同时尽量把计算机设置在一个工作组内且具有相同网段的IP地址。 其次,网上对于出现的问题描述较多,这里不再累述。当共享和访问出现问题时请考虑以下的步骤: 1.检查...
  • VirtualBox的Ubuntu中文件共享问题的解决:未处理的错误消息,获取文件"/media/sf_***"信息出错,协议错误
  • Samba服务器的安装与配置(linux与windows共享文件)
  • 关于文件权限设置,说一下我的总结 1. 针对所有人共享,且提供读写权限(以共享/public为例)       2. 针对组用户设置访问权限,提供读写权限           下面是一篇极好的文章
  • 【问题描述】: Windows 7 无法访问Windows2003共享,出现“系统错误 86。网络密码不正确”,但是这些问题都是正确的,经分析问题可能出现在用户身份验证上。 【解决方法】: 一、要解决此...
  • 进程:  操作系统通过进程控制块(PCB)表示进程,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。...在中断发生时必须要保存这些状态信息,便于后来进程继续正确
  • 关于共享单车违规乱停治理方案拟定运营方案调整计划书制作人:王刚邮箱: 947865448@qq.com我,产品经理方向的预备军的一员,目前还在找工作中,如果您有合适的岗位欢迎你的联系。个人事先声明,ofo在西安的校园招聘...
  • 文件I/O

    千次阅读 2016-11-12 20:10:51
    文件I/O简介 ##对UNIX系统来说,可用的文件I/O函数主要有:打开文件、读文件、写文件等。涉及到的函数主要有:open、read、write、lseek、close。而其中read和write函数受不同缓冲长度影响。...文件描述符对内核而言,
  • 一切皆是文件:UNIX,Linux 操作系統的設計哲學

    万次阅读 多人点赞 2020-08-19 10:37:27
    Linux的进程、线程、文件描述符是什么 说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别。 Linux 中的进程就是一个数据结构,看明白就可以理解...
  • 关于inf文件

    千次阅读 2011-09-14 11:11:16
    大部分人都会安装驱动程序,但不是每个会安装驱动的人都可以看的懂inf文件格式,甚至很多写过一点驱动的人都不是很明白,结合网上看到的关于inf文件的介绍和WDM书籍的介绍,写一些自己的理解。 INF是Device...
  • 引入虚拟文件描述符机制的痛点:单个进程可以轻易拥有超过系统限制的打开文件数 虚拟文件描述符机制的原理概述:VFD作为LRU池管理文件描述符,并根据需要打开和关闭实际需要的OS文件描述符。 FD LRU池的结构如下图...
  • PDF 与 PS页面描述语言与PDF文件解析(转)页面描述语言页面描述语言(Page Description Language,简称PDL)是一种面向输出效应的语言,用于描述打印或照排的版面,这种语言不仅具有版面描述功能,还具有计算机设计的...
  • Linux 共享库  Linux 系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,431
精华内容 72,172
关键字:

关于文件共享的正确描述是