Homeverzeichnis FTP Benutzer

Status
Für weitere Antworten geschlossen.

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich habe jetzt gewisse Stunden im Forum nach einer Antwort zu meinem Problem gesucht. Zwar wurde auf das Problem eingegangen, aber irgendwie nie richtig beantwortet wie es funktionieren kann bzw. wurden nur alternativen vorgeschlagen.

Was mich stört ist, dass ein Benutzer der per FTP auf das System zugreift auf /Volume1 landet.

Ich möchte keine Verzeichnisse /volume1/User1 und /volume1/User2 einrichten und diesen Usern die entsprechenden Rechte zuweisen. Sondern ein Verzeichnis /volume1/ftp. Diese User sollen dann auch beim Login in volume1/ftp landen und nicht in /volume1.

Ich habe diverse Lösungsansätze gesehen. Zum Beispiel per Telnet oder ssh als Root einloggen und in smb.conf bzw. passwd mit dem Editor gewisse Parameter zu editieren. Homeverzeichnis setzen usw. Ist das der richtige Weg? Oder landen diese User nur in dem Homeverzeichnis wenn diese sich per Telnet oder ssh anmelden? Welche Dateien müssen editiert werden um das Ziel zu erreichen?

Gruß Daniel
 

flicflac

Benutzer
Mitglied seit
13. Feb 2007
Beiträge
206
Punkte für Reaktionen
0
Punkte
0
Ich glaube dir schon, dass du noch in keinem Forum eine Lösung für dein Problem gefunden hast. Weil es keines ist!

Im Disk Station Manager (dem Konfigurationsprogramm) trägst du die Zugriffs-Berechtigung für den User1, etc (oder gerade für alle Anonymen) beim Hauptordner "ftp" ein. Das wars dann schon.
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Ich glaube dir schon, dass du noch in keinem Forum eine Lösung für dein Problem gefunden hast. Weil es keines ist!

Im Disk Station Manager (dem Konfigurationsprogramm) trägst du die Zugriffs-Berechtigung für den User1, etc (oder gerade für alle Anonymen) beim Hauptordner "ftp" ein. Das wars dann schon.

Gut, aber dann muss der User auf den Ordner FTP klicken. Und eben genau das möchte ich vermeiden.
 

flicflac

Benutzer
Mitglied seit
13. Feb 2007
Beiträge
206
Punkte für Reaktionen
0
Punkte
0
Ja, dass muss er. Denn du könntest ihm ja auch noch andere Ordner freigeben. Und die müsste man dann ja unterscheiden können.

Wenn du deine Benutzer direkt in das geöffnete Verzeichnis leiten willst, kannst du dies mit der Angabe von "ftp://deine-site/FTP" als korrekten Link erreichen.
 
Zuletzt bearbeitet:

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Ich glaube wir reden aneinander vorbei. :D Wenn ich den Link für den User direkt in das Verzeichnis angebe, dann ist es doch immer noch möglich eine Ordnerstruktur höher zu gelangen. Von Volume1/ftp auf /Volume1. Ich möchte gern den User auf /Volume1/ftp festnageln.

Das muss doch irgendwie zu bewerkstelligen sein. Weil das der User in /volume1 landet und nicht in / ist doch auch irgendwo festgehalten.

Wenn beispielsweise User: ftpuser mit kennwort: ftpuser folgendes in den Browser eingibt: ftp://ftpuser:ftpuser@myDomain.de dann soll er nur in /Volume1/ftp und alle Ordnerstrukturen darüber operieren können. Meinetwegen noch in /volume1/ftp/unterordner.

Wenn sich der Admin per FTP Zugang verschafft dann landet dieser in /volume1.

Ist das zu realisieren? Oder wäre das zu tiefe Eingriffe in irgendwelche Bootscripte? :confused:

Oder geht das nur über den Umweg das ich dem User ftpuser in dem Ordner volume1 das zugriffs recht nehme und den Ordner /volume1/ftp zu seinem Ordner mache. Dieser dann über ftp://ftpuser:ftpuser@myDomain.de/ftp direkt dort hin gelangt. Dann aber keine rechte in /volume1 hat und somit nicht eine Ordnerstruktur höher gelangen kann.

Nachtrag: Habe diese Variante gerade ausprobiert. Nur scheint es so, dass Vererbte Berechtigungen hier eine Rolle spielen.
/ = drwxr-x--- root root Volume1
/volume1 = drwxrwxrwx ftpuser users ftp

ftp://ftpuser:ftpuser@myDomain.de/ftp >> 550 /ftp: Permission denied

Ich hoffe ich habe jetzt nicht all zu sehr verwirrung gestiftet?

Gruß

Daniel
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Mit dem richtigen FTP Server kann man Benutzer in ihr Homeverzeichnis einsperren. Bei vsftp (via ipkg) kann man Benutzer via chroot user in dessen Verzeichnis einsperren. Das geht aber ned für beliebige Verzeichnisse sondern nur für jene die in /etc/passwd als Homeverzeichnis des jeweiligen Users eingetragen sind. Ob man mit dem Build-In FTP Server auch User chrooten kann weiss ich leider ned, aber mit vsftp geht's sicher.

Gruss

tobi
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Na das ist doch schonmal ein Ansatz. Danke dir. Werde es mal ausprobieren und dann berichten. Leider bin ich ein totaler Linux noob der immer mit Windows gefahren ist. Da ist der nächste Thread schon vorprogrammiert. ;):D
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Und nun hänge ich wieder. Für mich stellen sich nun folgende fragen:
Wie installiere in ipkg?
Wie installiere ich vsftp?
Wie bringe ich den anderen ftp Service zum schweigen? Im Manager? FTP Service aktivieren, haken raus.

Bin vorhin nach dieser Anleitung vorgegangen:
http://oinkzwurgl.org/diskstation_software
Und dann reboot.

Ist ipkg jetzt installiert? Wie sehe ich das? ipkg list sagt -ash: ipkg: not found

Sorry, wie ich schon sagte mein Linux ist ziemlich beschränkt. Bin aber gern bereit dies zu ändern.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

flicflac

Benutzer
Mitglied seit
13. Feb 2007
Beiträge
206
Punkte für Reaktionen
0
Punkte
0
@Daniel

Ich hatte eigentlich nicht den Eindruck, dass wir aneinander vorbeigeredet haben. Aber du glaubst offenbar nicht, dass ein User der nur Zugang zu FTP hat, nicht vom Zugang zu volume1 ausgeschlossen bleibt.

Probier das doch einmal aus. Wähle dich beispielsweise bei mir als User "icons" mit dem Pw "fancy" ein (ftp://flicflac.dynalias.net). Dann wird dir - wie mit dem FTP-Protokoll üblich ! - der freigegebene Ordner (also hier "icons") eingeblendet. In das übergeordnete volume1 gelangst du nicht (und natürlich genauso wenig in alle andern Hauptordner).

Wenn du auf mehr Sicherheit bei der Datenübertragung Wert legst, ist so ziemlich jede Lösung dafür gut (insbesondere auch diejenige, die bereits in der DiskStation integriert ist).
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
@tobi
Danke ipkg installation habe ich hinbekommen. Nur vsftpd sieht schwierig aus. Zumal es in Englisch ist. Hab es gerade mal überflogen. Kann ich denn jetzt .ipk package von vsftpd installieren? Oder ist das bereits installiert? Wenn ich "ipkg list" aufrufe steht vsftpd in der Version 2.0.7-1 dabei.

@flicflac
Habe dein FTP ausprobiert. In der Tat ist es so das mit dem User Icons der Zugriff auf den Ordner beschränkt ist. Nur bin ich dann nicht auf /volume1? Wo lande ich denn bei dir wenn ich mich Anonym anmelde. Da sehe ich überhaupt keine Ordner. Auch in /volume1 nur ohne sichtbare smb Shares? Weil die Berechtigungen fehlen?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Oder ist das bereits installiert? Wenn ich "ipkg list" aufrufe steht vsftpd in der Version 2.0.7-1 dabei.
ipkg list zeigt dir alle zur Verfügung stehenden Pakete an. Von dem her musst du dieses Paktet noch installieren
Code:
# ipkg install vsftpd
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Ahh, danke
ipkg remove vsftpd ; ipkg update ; ipkg install vsftpd
hatte hier den gleichen Effekt denke ich, oder?

Nur das ich mir remove eigentlich sparen konnte, da ja noch nix installiert war. Das wurde mir auch prompt mit "No packages removed" quittiert.
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
hmmm... ich bekomme den FTP irgendwie nicht gestartet.

Also meine inetd.conf in /etc sieht jetzt so aus:
telnet stream tcp nowait root /usr/sbin/telnetd telnet
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd

Die vsftpd.conf Datei habe ich editiert und in /etc kopiert

Der versuch mit "/etc/init.d/inetd restart" schlägt fehl.
"-ash: /etc/init.d/inet.d/inetd: not found"
Wie kann ich denn jetzt den Prozess starten?
 

flicflac

Benutzer
Mitglied seit
13. Feb 2007
Beiträge
206
Punkte für Reaktionen
0
Punkte
0
Nur bin ich dann nicht auf /volume1? Wo lande ich denn bei dir wenn ich mich Anonym anmelde. Da sehe ich überhaupt keine Ordner. Auch in /volume1 nur ohne sichtbare smb Shares? Weil die Berechtigungen fehlen?

Ja, so kann man sich das - etwas vereinfacht - erklären. Tatsächlich ist der anonyme Zugang eingerichtet, aber es ist kein Hauptordner freigegeben. Wenn du übrigens in volume1 einzelne Dateien hineinlädst, führt ein ftp-Aufruf zu einem Systemfehler (oder dies müsste zumindest so sein).
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
hmmm... ich bekomme den FTP irgendwie nicht gestartet.

Also meine inetd.conf in /etc sieht jetzt so aus:
telnet stream tcp nowait root /usr/sbin/telnetd telnet
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd

Die vsftpd.conf Datei habe ich editiert und in /etc kopiert

Der versuch mit "/etc/init.d/inetd restart" schlägt fehl.
"-ash: /etc/init.d/inet.d/inetd: not found"
Wie kann ich denn jetzt den Prozess starten?
Den inetd kannst du so afaik nicht restarten. Dazu musst du erst ie PID (Process ID) von inetd herausfinden
Code:
# ps | grep inetd
Code:
 1112 root        528 S   /usr/sbin/inetd
 2055 root        620 S   /opt/sbin/xinetd
13202 root        296 S   grep inetd
Hier ist die PID von inetd 1112. Diese verwendest du dann zum Neustarten
Code:
# kill -HUP 1112
Dann sollte inetd mit der neuen Konfig geladen sein.

Gruss

tobi

p.s. die ausführbare Datei von vsftp liegt unter /opt/sbin und nicht unter /usr Alle Dateien die von ipkg angelegt werden befinden sich unter /opt Dies damit sie auch ein Firmware Upgrade überleben
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
@jahlives
Ok das hat geklappt soweit. Nur leider bekomme ich kein Connect auf dem FTP. Ich poste mal die Konfigurationen und änderungen.

Meine vsftpd.conf in /opt/etc:
Rich (BBCode):
# Example config file /opt/etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
vsftpd_log_file=/opt/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to the NSLU2 vsftp daemon.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
banned_email_file=/opt/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/opt/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES
userlist_deny=NO
userlist_enable=YES
chroot_local_user=YES

Die Ausführbare Datei "vsftpd" befindet sich in /opt/sbin
So sieht die /etc/passwd aus:

Code:
root:x:0:0:root:/root:/bin/ash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
ftp:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
anonymous:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
smmsp:x:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
nobody:x:1023:1023:nobody:/home:/sbin/nologin
admin:x:1024:100:System default user:/volume1/@database:/bin/sh
guest:x:1025:100:Guest:/nonexist:/bin/sh
ftpuser2:x:1027:1027:ftpgroup:/home/ftpuser2:/sbin/nologin

Die Gruppe ftpgroup wurde erstellt und ftpuser2 als Mitglied aufgenommen.
Das Verzeichnis /home/ftpuser2 wurde angelegt:
Code:
drwxr-xr-x    3 root     root         4096 Oct  3 19:38 .
drwxr-xr-x   22 root     root         4096 Oct  3 19:53 ..
drwxr-xr-x    2 nobody   ftpgroup     4096 Oct  3 19:38 ftpuser2

Meine inetd.conf in /etc:

Code:
telnet	stream	tcp	nowait	root	/usr/sbin/telnetd	telnetd
ftp stream tcp nowait root /opt/sbin/vsftpd /opt/etc/vsftpd.conf

Meine vsftpd.user_list in /etc
Code:
ftpuser
ftpuser2

Das Dumme ist das jetzt nicht mal mehr der mitgelieferte FTP läuft (Manager).
Ich bekomme zwar ein Login. Aber wenn ich den User mit Kennwort eingebe kommt erneut die Aufforderung. Also der Server läuft sonst würde ja die Fehlermeldung "Die Serververbindung konnte nicht hergestellt werden" kommen. Nur leider fehlt wieder irgendwas.

gruß

Daniel
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wenn du dich via FTP mit dem Server verbinden willst, welcher Server kommt dann? Der Synology FTP oder vsftp? Ich vermute du hast den Synology FTP Server nicht abgeschossen. Und zwei Dienste auf dem gleichen Port geht eigentlich immer ins Auge ;)
Mach mal ein
Code:
# ps | grep ftp
und schau ob der Syno FTP noch aufgeführt wird. Wenn ja dann schiess ihn erst mit killall PROCESSNAME ab und probier nochmals auf den FTP Server zu verbinden (am besten auch gleich im Webmanager deaktivieren). Immer noch das gleiche Resultat oder kommt ne Meldung von vsftp?

Gruss

tobi
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Code:
ps | grep ftp
2754  root     220 S grep ftp

Was heisst das jetzt?
 

Daniel775

Benutzer
Mitglied seit
01. Okt 2008
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Danke Danke Danke. Ich habs gefunden.
Ihm fehlte in /opt/var der Ordner log und die Datei vsftpd.log. Nachdem ich diese angelegt hatte ging es.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat