c# - .net - 使用 C# Windows 服务访问 Linux 目录

标签 c# linux windows

我还没有开始这个 - 只是想获得一些想法,但是我可以使用 C# Windows 服务访问网络中 Linux 机器上的目录和文件吗?我读过 thisthis ,但到目前为止,他们只是试图获取目录中的文件。我的目标是:

  • 读取文件是否存在
  • 我们希望文件是 zip 文件,所以我们应该在 Linux 机器的目录中进行解压缩
  • Windows 服务部署在带有 FileSystemWatcher 的 Windows 机器上,它将监视 Linux 目录中的文件是否已创建

我已经阅读了一些有关 C# 的 SSH 和 FTP 库的内容,但这不只是为了获取文件吗?我想与目录中的文件本身进行交互。

任何有用的链接或答案将不胜感激。

更新:

我认为要求之一是不使用 Active Directory - 这取消了 Samba 的使用。

最佳答案

Samba 设置指南

首先更新服务器并安装Samba:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba

然后wget这个文件:Samba config . 使用您最喜欢的文本编辑器(即 vi 上的 nano)打开它。记得 SUDO 编辑!!!

找到以下行(并更改参数以满足您的需要):

[share]
   comment = A share
   path = /path/to/folder
   browsable = yes
   guest ok = no
   read only = no
   create mask = 0755

comment 是对共享的描述。

path 是共享文件夹的路径

browsable = yes 使共享及其内容可供经过身份验证的用户浏览

guest ok = no 禁用匿名登录

read only = no 启用编辑和重命名文件

create mask = 0755 设置新文件的默认权限


然后创建用于访问共享的用户(并设置密码):

sudo useradd share
sudo passwd share
sudo smbpasswd -a share
sudo smbpasswd -e share

将你的 smb.conf 移动到/etc/samba/smb.conf

sudo mv smb.conf /etc/samba/smb.conf

重新加载 Samba 配置:

sudo /etc/init.d/samba reload

或者如果这不起作用:

sudo smbd reload

完成!

现在您可以使用 \\serverAddress\share 访问 windows 上的共享

用户名是WORKGROUP\share OR linuxServerHostname\share 密码是你上面设置的密码。

您现在可以通过转到资源管理器并使用“映射网络驱动器”向导将共享作为网络驱动器映射到 Windows。勾选“使用不同的凭据连接”复选框。您也可以使用 C# 映射网络驱动器。

共享中的所有文件和文件夹现在(映射时)充当本地文件。

关于c# - .net - 使用 C# Windows 服务访问 Linux 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883204/

相关文章:

c# - block 注释被字符串中的 "*/"关闭

c# - 返回受每个 INSERT 上的存储过程影响的行以显示在 ASP.NET 页面中

linux - 将自定义 Hook 添加到使用 Docker 安装的 Gitlab

linux - unrar : error while loading shared libraries: libstdc++. so.6:无法打开共享对象文件:没有这样的文件或目录

windows - 在 Windows 上观察 gVim 控制台输出

c# - WPF 所见即所得编辑器

c# - 如何在wix中显示自定义安装程序的登录信息

c - 在 Linux 中操作 u64 类型

windows - CMD 全屏 Visual Studio

windows - d3dx 库如何将纹理保存到文件中?