PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Proftpd mit mehreren DefaultRoot



Jongens
05.04.01, 21:37
Hallo

Wie kann ich mit Proftpd jeden User ein eigenes DefaultRoot zuteilen.
Ich meine aber nicht sein home Verzeichnis, sondern z.B.:
user1 -> /www/user1
user2 -> /www/user2
user3 -> /www/user3
Ist so etwas überhaupt möglich?
Danke im voraus.


------------------
Jongens
come.to/jongens (http://come.to/jongens)

ballaballa
28.01.03, 19:19
ja, das such ich auch schon lang. Aber noch besser wärs, wenn man auch noch folgendes machen könnte:

user1 => ordner1
     => ordner11
     => ordner12
user2 => ordner2
......


Ist das möglich?

corresponder
28.01.03, 19:28
dumme frage:

was ist das problem ?

DefaultRoot ~ !adm

und schon kannst du jeweils jedem user ein verzeichnis geben, entweder beim anlegen des selbigen oder später in der datei passwd unter etc.....

hierfür benutzt mensch den befehl vipw (vi - kenntnisse vorausgesetzt.....!)


gruss

c.

ballaballa
30.01.03, 21:21
Hi!
Danke, für die Antwort. Aber wenn ich vipw eingebe (vi-kentnisse hab ich übrigens), kommt folgendes:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
news:x:9:13:News system:/etc/news:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
games:x:12:100:Games account:/var/games:/bin/bash
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash
postgres:x:26:2:Postgres database admin:/var/lib/pgsql:/bin/bash
mdom:x:28:28:Mailing list agent:/usr/lib/majordomo:/bin/bash
wwwrun:x:30:65534:WWW daemon apache:/var/lib/wwwrun:/bin/bash
squid:x:31:65534:WWW proxy squid:/var/squid:/bin/bash
fax:x:33:14:Facsimile agent:/var/spool/fax:/bin/bash
gnats:x:34:65534:Gnats GNU backtracking system:/usr/lib/gnats:/bin/bash
adabas:x:36:100:Adabas-D database admin:/usr/lib/adabas:/bin/bash
amanda:x:37:6:Amanda admin:/var/lib/amanda:/bin/bash
irc:x:39:65534:IRC daemon:/usr/lib/ircd:/bin/bash
ftp:x:40:2:FTP account:/usr/local/ftp:/bin/bash
firewall:x:41:31:Firewall account:/var/lib/firewall:/bin/false
named:x:44:44:Nameserver daemon:/var/named:/bin/bash
fnet:x:49:14:FidoNet account:/var/spool/fnet:/bin/bash
gdm:x:50:15:Gnome Display Manager daemon:/var/lib/gdm:/bin/bash
postfix:x:51:51:Postfix daemon:/var/spool/postfix:/bin/false
cyrus:x:96:12:IMAP daemon:/usr/lib/cyrus:/bin/bash
oracle:x:59:54:Oracle database admin:/opt/oracle:/bin/bash
mysql:x:60:2:MySQL database admin:/var/lib/mysql:/bin/false
dpbox:x:61:56:DpBox account:/var/spool/dpbox:/bin/false
ingres:x:62:3:Ingres database admin:/opt/tngfw/ingres:/bin/bash
zope:x:64:2:Zope daemon:/var/lib/zope:/bin/false
vscan:x:65:65534:Vscan account:/var/spool/vscan:/bin/false
wnn:x:66:100:Wnn system account:/var/lib/wnn:/bin/false
pop:x:67:100:POP admin:/var/lib/pop:/bin/false
perforce:x:68:60:Perfoce admin:/var/lib/perforce:/bin/false
sapdb:x:69:61:SAPDB demo account:/var/opt/sapdb:/bin/bash
db4web:x:70:100:DB4Web account:/opt/db4web:/bin/bash
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
balla:x:500:100:kein:/home/balla:/bin/bash
fresse:x:501:100:fresse:/home/fresse:/bin/bash
stevie:x:502:100:kein:/home/stevie:/bin/bash
markus:x:503:100:kein:/home/markus:/bin/bash
soemer:x:504:100:kein:/home/soemer:/bin/bash
delphikurs:x:505:100:kein:/home/delphikurs:/bin/bashWas bedeutet das?
Ich kann damit nix anfangen.

corresponder
30.01.03, 22:12
das sind die user, deren pfade und die shell, die sie bekommen....

root:x:0:0:root:/root:/bin/bash

1-------2--------3-------4

1. user
2. gid/uid (glaub ich)
3. des users pfad
4. die shell des users




:cool:

ballaballa
31.01.03, 11:10
aha, und kann man auch einfach folgendes schreiben, denn gid/uid hab ich net verstanden:
root:/root
root:/zweiter\ pfad

Jasper
31.01.03, 12:14
Original geschrieben von Jongens

Wie kann ich mit Proftpd jeden User ein eigenes DefaultRoot zuteilen.
Ich meine aber nicht sein home Verzeichnis, sondern z.B.:
user1 -> /www/user1
user2 -> /www/user2
user3 -> /www/user3
Ist so etwas überhaupt möglich?
Danke im voraus.


prinzipiell ja. du müsstest jeden user in eine eigene gruppe packen und diese gruppe dann bei defaultroot angeben, also z.b.

user= user1 mit group=user1

DefaultRoot /www/user1, user1
DefaultRoot /www/user2, user2
...

einfacher wäre es, wenn das defaultroot für jeden user gleich sein homedir wäre, aber das wolltest du ja nicht.

-j

ballaballa
31.01.03, 13:56
Hi!
Neja, zumindest ich will schon das Home-Verzeichnis als DefaultRoot, aber manchen Usern würde ich halt gerne noch ein paar Verzeichnisse dazu geben.
Was müsste ich jetzt in die proftpd.conf eintragen, wenn ich folgendes erreichen wollte: der User root und markus soll auf /web und auf ~/public_html zugreifen können.
Der User delphikurs soll auf /web/wbboard_delphikurs und auf ~/public_html Zugriff haben.
Der Rest hat nur auf ~/public_html Zugriff.

So sieht meine proftpd.conf jetzt aus:
ServerName "Ballaballa's FTP-Server"
ServerType standalone
DefaultServer on

Port 21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.
User nobody

<Directory /web/*>
AllowOverwrite on
</Directory>
<Directory /home/*/public_html/*>
AllowOverwrite on
</Directory>

DefaultRoot ~/public_html

RequireValidShell on

UseFtpUsers off
<Global>
LoginPasswordPrompt off
RootLogin on
</Global>
RootLogin on
LoginPasswordPrompt off


Vielen Dank im Vorraus!

Jasper
31.01.03, 14:10
Original geschrieben von ballaballa
Neja, zumindest ich will schon das Home-Verzeichnis als DefaultRoot, aber manchen Usern würde ich halt gerne noch ein paar Verzeichnisse dazu geben.
Was müsste ich jetzt in die proftpd.conf eintragen, wenn ich folgendes erreichen wollte: der User root und markus soll auf /web und auf ~/public_html zugreifen können.
Der User delphikurs soll auf /web/wbboard_delphikurs und auf ~/public_html Zugriff haben.
Der Rest hat nur auf ~/public_html Zugriff.


das wird so nix. jeder user kann nur eine defaultroot haben, in die er quasi eingesperrt wird. d.h. wenn root auf /web und auf ~/public_html zugreifen soll, wo soll er dann eingesperrt werden? /web oder ~ ?

ich würde zwei ftp-server verwenden (virtual hosts), einer der die user per defaultroot in ihr home-verzeichnis einsperrt und ein zweiter, der /web und alles andere bereitstellt.

-j

ballaballa
31.01.03, 14:52
Neja, ich dachte, man könnte sie vielleicht in ein virtuelles Verzeichnis einsperren, dass dann die Ordner enthält.
Ich kenne das nämlich von WS_FTP Server.
Weißt du, ob es unter Linux einen FTP-Server, der das unterstützt, gibt?

Jasper
31.01.03, 17:31
Original geschrieben von ballaballa
Neja, ich dachte, man könnte sie vielleicht in ein virtuelles Verzeichnis einsperren, dass dann die Ordner enthält.
Ich kenne das nämlich von WS_FTP Server.
Weißt du, ob es unter Linux einen FTP-Server, der das unterstützt, gibt?

naja, du könntest hardlinks (gehen nicht über fs-grenzen hinweg!) verwenden, um /web in das homedir von root zu linken, dann hätte root aus seinem chroot zugriff auf /web oder, besser, mounte das verzeichnis (erst ab 2.4.0!):

mount --bind /web /root/web

ftp-server die sich in der sache wie ws_ftp verhalten, sind mir nicht bekannt.

-j