protocolo - update file sftp c#
Crear una cuenta de usuario SFTP o FTP a través del código c# (2)
¿Es posible crear usuarios de sftp con mi código? Estoy usando bitvise SSH server como mi servidor sftp, y filezilla server como mi servidor ftp, ahora quiero crear diferentes usuarios para mis diferentes clientes para que todos tengan acceso a diferentes carpetas en mi servidor y no puedan acceda a la ruta de cada uno (carpetas). Puedo usar cualquiera de ellos (sftp o ftp), pero mi prioridad es sftp. ¿Alguien puede tener alguna idea de la creación del usuario en sftp o en ftp por c # code?
Para el servidor FileZilla, puede modificar C:/Program Files (x86)/FileZilla Server/FileZilla Server.xml
( FileZillaServer/Users
) y hacer que el servidor vuelva a cargar la configuración usando:
"FileZilla Server.exe" /reload-config
Tengo la solución y aquí la estoy publicando. Sería útil para otra persona en el futuro:
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;
}