zoukankan      html  css  js  c++  java
  • 用.Net如何访问Linux下目录

    很多Windows下的应用需要访问和监控Linux下的目录,本文便介绍如何实现。

    只需要搭建配置samba服务,即可将Linux下的目录变得如同Windows下共享可写。

     

    1、服务查询

    默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分 ,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令

     

    rpm -qa | grep samba ,默认情况下可以查询到两个已经存在的包:

     

    samba-client-3.0.33-3.7.el5

     

    samba-common-3.0.33-3.7.el5

     

    2、安装Samba 服务器

     

    用以下命令安装:

     

    rpm -ivh samba-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps

     

    安装完成后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了即可。

     

    如未成功,一般需要先安装prel-convert-ASN1-0.20-1.1.noarch.rpm,此文件在linux安装光盘中有。

     

    3、配置smb.conf文件

     

    Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部

     

    分主要配置都在该文件中进行。

     

    Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者

     

    具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。

    第一步:修改配置文件

     

    首先备份一下samba的配置文件

     

    cd /etc/samba

     

    mv smb.conf smb.confbak

     

    然后重新创建一个smb.conf文件

     

    touch smb.conf

     

    然后我们把这段写入smb.conf中

     

    [global]

        workgroup = LinuxGroup

        netbios name = Linux

        server string = Linux Samba Server TestServer

        security = share

     

     [linuxsir]

      path = /opt/share

      writeable = yes

      browseable = yes

     

       guest ok = yes

     

    注解:

     

    [global]这段是全局配置,是必段写的。其中有如下的几行;

     

    workgroup 就是Windows中显示的工作组;在这里我设置的是LinuxGroup (用大写);

    netbios name 就是在Windows中显示出来的计算机名;

    server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;

    security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;

     

    [share] 这个在Windows中显示出来是共享的目录;

    path = 可以设置要共享的目录放在哪里;

    writeable 是否可写,这里我设置为可写;

    browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no

     

    guest ok 匿名用户以guest身份是登录;

     

    第二步:建立相应目录并授权;

     

    [root@localhost ~]# mkdir -p /opt/share

     

    [root@localhost ~]# id nobody

    uid=99(nobody) gid=99(nobody) groups=99(nobody)

    [root@localhost ~]# chown -R nobody:nobody /opt/share

    [root@localhost ~]# setsebool samba_export_all_rw on

     

    注释:

     

    关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody ;

    setsebool samba_export_all_rw on很关键。

    第三步:启动smbd和nmbd服务器;

    [root@localhost ~]/etc/rc.d/init.d/smb start

     

    这样就可以如同Windows共享目录一样浏览linux下的目录了。

    在.Net里面可以使用System.IO读写该目录的文件,甚至可以用filesystemwatcher组件监控该目录。

  • 相关阅读:
    《数据结构》C++代码 线性表
    《数据结构》C++代码 Splay
    《数据结构》C++代码 前言
    蓝桥杯- 算法提高 最大乘积
    HDU-1241 Oil Deposits
    一个简单的网站计数器
    编写一个jsp页面,输出九九乘法表。
    Sum It Up
    历届试题 剪格子
    历届试题 分糖果
  • 原文地址:https://www.cnblogs.com/tuyile006/p/3710273.html
Copyright © 2011-2022 走看看