sshnet / sshnet/SSH.NET

How do I create a directory or file with 777 permission and a specific username and group

Offen
#973 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
4.4k
Forks
993
Ø Merge
9 T. 21 Std.
Gemergte PRs (30 T.)
1

Beschreibung

How do I create a directory with 777 permission and a specific username and group


...

 using (SftpClient sftp = new SftpClient(ipSftpServer, portSftpServer, userSftp, passSftp))
                        {
                            sftp.Connect();
                            CreateServerDirectoryIfItDoesntExist(destSftpPath, sftp);
                            memoryStream.Seek(0, SeekOrigin.Begin);
                            sftp.UploadFile(memoryStream, destSftpPath, delegate (ulong d)
                            {
                                if (uploadCallback != null)
                                {
                                    uploadCallback((long)d, bytesTotal);
                                }
                            });
                            // chown -R dcm4chee-arc:dcm4chee-arc .
                            //change user and group dcm4chee-arc dcm4chee-arc
                            sftp.ChangePermissions(destSftpPath, 777);
                            Console.WriteLine($"end of file copy");
                            sftp.Disconnect();
                        }

...
 private static void CreateServerDirectoryIfItDoesntExist(string serverDestinationPath, SftpClient sftpClient)
    {

        string[] directories = serverDestinationPath.Split('/');    
        Array.Resize(ref directories, directories.Length - 1);      
        for (int i = 0; i < directories.Length; i++)
        {
            if (i > 0)
            {
                string dirName = string.Join("/", directories, 0, i + 1);
               
                if (!sftpClient.Exists(dirName))
                {                
                    sftpClient.CreateDirectory(dirName);
                    // chown -R dcm4chee-arc:dcm4chee-arc .
                    //example user and group: dcm4chee-arc dcm4chee-arc
                    //How do I create a directory with 777 permission and a specific username and group
                    sftpClient.ChangePermissions(dirName, 777);
                    
                }
            }
        }
    }

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit den im Issue gezeigten Aufrufen SftpClient.CreateDirectory, UploadFile und ChangePermissions und prüfe die SSH.NET-API-Dokumentation auf Unterstützung für Besitz und Berechtigungen. Erledigt ist dies, wenn festgestellt wurde, ob das angeforderte Verhalten für Verzeichnis- und Dateibesitz unterstützt wird, und eine eindeutige Antwort zur Verwendung oder zu den Einschränkungen vorliegt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
networking
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.