FTP user

Dieses Thema im Forum "C/C++" wurde erstellt von ReduX08, 14.05.2008.

  1. #1 ReduX08, 14.05.2008
    ReduX08

    ReduX08 Foren As

    Dabei seit:
    13.05.2008
    Beiträge:
    80
    Zustimmungen:
    0
    Hi,
    Ich stehe hier grad aufm Schlauch und komme nicht weiter.
    Was ich machen will.

    Ein PHP Webinterface das sich via SSH2 auf einen Server verbindet und dort ein Programm, dass in C++ geschrieben wird mit parametern aufruft.

    So, das Programm muss jetzt einen neuen User anlegen, der gleichzeitig einen FTP Zugang hat, dieß habe ich mit vsftp realisiert, da sich dort jeder lokale user einloggen kann und in seinem Home verzeichniss eingesperrt ist.
    Aber ich möchte das Passwort für den FTP User ändern aber nicht das für den SSH user, wie bekomme ich das hin bzw. ist in meinem oben geschriebenen ein Denkfehler?

    Sollte ich das Unter C++ immer mit dem system() call machen und immer sudo vorschreiben oder das Programm als root laufen lassen (dafür werdet ihr mir wahrscheinlich den Kopf abreißen :devil:)

    MFG ReduX
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 x0r, 14.05.2008
    Zuletzt bearbeitet: 14.05.2008
    x0r

    x0r Bitschubser

    Dabei seit:
    20.12.2005
    Beiträge:
    169
    Zustimmungen:
    0
    Ort:
    Berlin
    moin moin,

    Wenn das mal gut geht ... :oldman

    besser nicht, abgesehen dass du das Passwort d. Users schlecht auf die Standardeingabe streamen kannst (oder besser, WILLST :) ), hättest Du auf Seite des SSH-Ziels eine shell-befehl der Dein PW im Klartext enthällt sichtbar in der processtable.

    Wenn es unbedingt sein muss, dass Deine anwendung Dinge mit Rootprivilegien tun soll, dann setz einfach via chmod ein suid-flag.
    Leg einen extra User, z. Bleistift: 'remote_buddy' an, der nicht viel tun dürfen sollte, als Deine anwendung ausführen zu können.
    Laß nur diesen User die Anwendung ausführen (überprüf seine UID!),

    Code:
    man 2 getuid
    man 2 setuid
    
    und http://de.wikipedia.org/wiki/Unix-Dateirechte sowie
    http://www.unixboard.de/vb3/showthread.php?t=23050&highlight=suid

    geben mehr Informationen...
    Mfg
     
  4. #3 ReduX08, 14.05.2008
    Zuletzt bearbeitet: 14.05.2008
    ReduX08

    ReduX08 Foren As

    Dabei seit:
    13.05.2008
    Beiträge:
    80
    Zustimmungen:
    0
    Hi,
    Danke für deine Antwort.
    Habe nochmal nachgedacht und dabei festgestellt das ich es komplett falsch erklärt habe.
    Mein Programm das via SSH aufgerufen wird gehört einem normalen User.
    Dieser Startet verschiedene Dämons in unterordner. Nun muss das Programm aber auch für jeden gestarteten Dämon ein FTP user anlegen der in das Unterverzeichnis des Dämons eingesperrt ist. Ich würde dann gerne noch den max. nutzbaren Festplattenplatz für den FTP User einstellen, sprich das er nur max. 200MB uploaden darf. Darüber hinaus wäre es noch nett den FTP Traffic pro User einzustellen.
    Mein Problem ist jetzt das ich mich mit FTP nicht sonderlich beschäftigt habe.
    Ich habe bisher ProFTPD genutzt und habe für jeden neuen user einen in die Gruppe proftpd reingetan und die Shell auf false geleitet.
    Wäre dankbar für ein bisschen Hilfe, es muss auch nicht Proftpd sein nutze auch gerne etwas anderes, der Server muss nur unter vielen Distros verfügbar sein.

    Was soll das explizit heißen? Nutze in PHP libSSH2 und man hat mir gesagt das es sicher sei (hoffe ich zumindest:think:).
    MFG ReduX08

    Edit:
    Habe nun herausgefunden das man User einfach mit ftpasswd anlegen kann, jedoch wie kann ich es machen das er nicht nach dem passwort frägt? Weil das kann ich ja hinterher mit dem system call nicht eingeben.
     
  5. x0r

    x0r Bitschubser

    Dabei seit:
    20.12.2005
    Beiträge:
    169
    Zustimmungen:
    0
    Ort:
    Berlin
    Gewiss ... ist es auch.
    Ich hatte nur einen anderen Eindruck von dem was Du zu tun gedenkst,
    als ich dies:
    ... und dies ...
    gelesen hatte. Nix für Ungut.
    Zu Deinen Fragen: Ich trau' mich fast gar nicht, das zu posten, aber alle Deine Wunschfunktionen sind in Proftpd implementiert.
    Mußt dann mit den Direktiven ein bisserl herumspielen ( ProFTPd-FAQ )

    Hat dann allerdings auch nicht mehr viel mit C/C++ zu tun :)

    MfG
     
  6. #5 ReduX08, 16.05.2008
    ReduX08

    ReduX08 Foren As

    Dabei seit:
    13.05.2008
    Beiträge:
    80
    Zustimmungen:
    0
    Damit es wieder etwas mit C++ zu tun hat:

    Ich habe das jetzt so verstanden das ich am besten ein AuthUserFile anlege und dann mit C++ da drin rumfummle :devil:.

    Nur die Frage ist die Syntax lautet(nach Google) ja:
    username:password:uid:gid:gecos:homedir:shell

    1.) Nur die Frage ist wie wird das Passwort verschlüsselt bzw. wie geht es unter C++.
    Dann geht es noch um die Disk Quota, leider finde ich dazu IMHO nichts wie ich mit AuthUserFile die Disk Quota des jeweiligen Users einstelle.
    Ferner noch die Frage was eigentlich uid,gid und gecos bedeutet?
    Bzw. muss ich diese speziell setzen?

    2.) Wie kann ich unter C++ wenn ich mit useradd einen User anlege Fragt er mich ja dann in der Konsole nach dem Passwort. Aber wie kann ich auf die Anfrage reagieren da der sys call ja nur den Befehl ausführt und dannach den "virutellen" Terminel wieder dicht macht.

    MFG ReduX
     
  7. #6 der_Kay, 16.05.2008
    Zuletzt bearbeitet: 16.05.2008
    der_Kay

    der_Kay Doppel-As

    Dabei seit:
    28.02.2006
    Beiträge:
    140
    Zustimmungen:
    0
    Nicht wenn shadow-passwords vewendet werden, was mittlerweile Standard ist.
    man 3 crypt

    adduser hat die -p Option, das Passwort wird einfach crypt-veschlüsselt mitgegeben ;)
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 ReduX08, 17.05.2008
    ReduX08

    ReduX08 Foren As

    Dabei seit:
    13.05.2008
    Beiträge:
    80
    Zustimmungen:
    0
    Bedeutet das, dass ich es so nicht machen kann oder das es noch geht aber nicht gern gesehen ist?
    Bzw. wie stell ich es an Shadow passwords da reinzubringen?

    MFG ReduX08
     
  10. x0r

    x0r Bitschubser

    Dabei seit:
    20.12.2005
    Beiträge:
    169
    Zustimmungen:
    0
    Ort:
    Berlin
    wurde doch schon gesagt: :)
    Soll heißen, Du machst einen syscall (useradd) um Deinen Nutzer anzulegen. Den String für den syscall 'strcat'-test Du aus dem 'useradd' inkl. Parameter -p dem von crypt() zurückgeliferten String für das Passwort und einem Usernamen.

    Wenn der Nutzer im System angelegt ist, kann man sich in aller Regel auch via ft dann anmelden.
    Was die quotas betrifft fällt mir spontan mod_quotatab ein. Hier, ein Statement der Proftpd-Entwickler:
    Mußt wohl dann die sourcen nochmal neu compilieren. Siehe hier:
    http://www.castaglia.org/proftpd/modules/mod_quotatab.html

    Hoffe das hilft Dir, mfg
     
Thema:

FTP user

Die Seite wird geladen...

FTP user - Ähnliche Themen

  1. Solaris Login mit Active Directory User

    Solaris Login mit Active Directory User: Hallo zusammen, Ich arbeite daran unsere Solaris Systeme ans AD anzubinden. Teilweise ist mir das schon gelungen, teilweise stehe ich aber auch...
  2. LUG: Wolust - Wormser Linux User Stammtisch

    LUG: Wolust - Wormser Linux User Stammtisch: Wir sind die Nachfolger der Wolug. Linux und Open Source ist unser Thema. Wir mögen Server, Softwaretests, CMS, eingebettete Systeme, Arduino und...
  3. /opt/PROG für USER nutzbar machen

    /opt/PROG für USER nutzbar machen: Hallo, ich habe als ROOT ein Programm in /opt installiert. Wie kann ich das Programm auch für USER zugänglich machen. Es dürfen ruhig alle USER...
  4. LUG: Linux-Usergroup Bremerhaven

    LUG: Linux-Usergroup Bremerhaven: Die Linux-Usergroup Bremerhaven ist ein lockerer Zusammenschluss von Leuten aus Bremerhaven und Umgebung. Der einfachste Weg, sie kennenzulernen,...
  5. Ordner für einen User freigeben

    Ordner für einen User freigeben: Hallo, ich möchte mit Samba (auf einem Ubuntu Server) einen Ordner im lokalen Netzwerk freigeben. Dieser Ordner soll auf allen Geräten im...