通过c#代码创建SFTP或FTP用户帐户

本文关键字:FTP 用户 SFTP 代码 创建 通过 | 更新日期: 2023-09-27 18:24:01

这可以通过我的代码创建sftp用户吗?我使用bitvise SSH服务器作为sftp服务器,使用filezilla服务器作为ftp服务器,现在我想为我的不同客户创建不同的用户,这样他们都可以访问我服务器上的不同文件夹,而不能访问其他路径(文件夹)。我可以使用它们中的任何一个(sftp或ftp),但我的优先级是sftp。有人能通过c#代码在sftp或ftp中创建用户吗?

通过c#代码创建SFTP或FTP用户帐户

对于FileZilla服务器,您可以修改C:'Program Files (x86)'FileZilla Server'FileZilla Server.xmlFileZillaServer/Users)并让服务器使用重新加载配置

"FileZilla Server.exe" /reload-config

我得到了解决方案,现在我把它发布在这里。这将对未来的其他人有所帮助:

try
{
    string hely = @"C:'Program Files (x86)'FileZilla Server'FileZilla Server.xml";
    StreamWriter wr = new StreamWriter(hely, false);
    wr.WriteLine("<FileZillaServer>");
    wr.WriteLine("      <Settings>");
    wr.WriteLine("       <Item name='"Admin port'" type='"numeric'">14147</Item>");
    wr.WriteLine("   </Settings>");
    wr.WriteLine("  <Groups />");
    wr.WriteLine("  <Users>");
    wr.WriteLine(" <User Name='"test'">");
    wr.WriteLine("      <Option Name='"Pass'">test</Option>");
    wr.WriteLine("       <Option Name='"Group'"></Option>");
    wr.WriteLine("      <Option Name='"Bypass server userlimit'">0</Option>");
    wr.WriteLine("       <Option Name='"User Limit'">0</Option>");
    wr.WriteLine("      <Option Name='"IP Limit'">0</Option>");
    wr.WriteLine("     <Option Name='"Enabled'">1</Option>");
    wr.WriteLine("      <Option Name='"Comments'">test</Option>");
    wr.WriteLine("      <Option Name='"ForceSsl'">0</Option>");
    wr.WriteLine("   <IpFilter>");
    wr.WriteLine("      <Disallowed />");
    wr.WriteLine("      <Allowed />");
    wr.WriteLine("  </IpFilter>");
    wr.WriteLine("  <Permissions>");
    wr.WriteLine("       <Permission Dir='"D:''FTP_Root'">");
    wr.WriteLine("      <Option Name='"FileRead'">1</Option>");
    wr.WriteLine("     <Option Name='"FileWrite'">1</Option>");
    wr.WriteLine("       <Option Name='"FileDelete'">1</Option>");
    wr.WriteLine("       <Option Name='"FileAppend'">1</Option>");
    wr.WriteLine("       <Option Name='"DirCreate'">1</Option>");
    wr.WriteLine("      <Option Name='"DirDelete'">1</Option>");
    wr.WriteLine("      <Option Name='"DirList'">0</Option>");
    wr.WriteLine("      <Option Name='"DirSubdirs'">1</Option>");
    wr.WriteLine("      <Option Name='"IsHome'">1</Option>");
    wr.WriteLine("       <Option Name='"AutoCreate'">0</Option>");
    wr.WriteLine("    </Permission>");
    wr.WriteLine("  </Permissions>");
    wr.WriteLine("<SpeedLimits DlType='"0'" DlLimit='"10'" ServerDlLimitBypass='"0'" UlType='"0'" UlLimit='"10'" ServerUlLimitBypass='"0'">");
    wr.WriteLine("              <Download />");
    wr.WriteLine("          <Upload />");
    wr.WriteLine("       </SpeedLimits>");
    wr.WriteLine(" </User>");
    wr.WriteLine("  </Users>");
    wr.WriteLine("</FileZillaServer>");
    wr.Close();
    string pathtofilezilla = @"C:'Program Files (x86)'FileZilla Server";
    Process.Start("CMD.exe", "/C '"" + pathtofilezilla + "''FileZilla Server.exe'" /reload-config");
}
catch (Exception ex)
{
    throw ex;
}