unix problem mit rechten

caramba12321

blödefragensteller
Hallo,

ich habe am Wochenende mal angefangen einen Debian Etch Server aufzusetztem. Hatte vorher keine Vorkenntnisse. Es ist auch alles ganz gut geglückt, apache2+php5.2.2+mysql5.1+ftppro
läuft alles astrein und ich fange an Unix sehr gut zu verstehen und bin ziemlich begeistert davon. Aber nun zu meinem Problem.

Ich habe 2 Gruppen: ftpuser und ftprootuser
der einzige unterschied zwischen den beiden gruppen ist nicht relevant. Ich möchte nun das alle User beider Gruppen volle Rechte(schreib+lese) im Verzeichnis /var/www haben, denn wenn ich jetzt mit einem user aus einen der beiden Gruppen z.B. versuche ein Verzeichnis zu erstellen kommt "permission denied".

Ich hab auch schonmal gegoogelt und was mit "stickbit"(ka was das ist) gefunden, hat mir aber nicht sehr geholfen da da nichts erklärt war und ich nicht einfach so crap aus dem inet ausprobieren wollte.

Vielleicht könnt ihr mir ja helfen.

Gruss
Caramba
 
Du kannst folgendes versuchen:

1.) Du gibst dem Verzeichnis /var/www die Gruppenrechte einer der beiden Gruppen mit
Code:
chown -R ftpuser /var/www
was aber zur Folge hat, dass der Apache sich muckieren wird, weil die/das Verzeichnis nicht mehr dem WWW-Server gehört,sondern einem anderen User und folglich das Ausführen von Scripts verhindern wird.

Lösung 1.)
Du gibst dem User des WWW-Servers (wahrscheinlich ist das der User nobody, apache oder www einen FTP-Login auf das Verzeichnis

oder

Lösung 2.)
Du machst ein chmod auf das Verzeichnis /var/www was allen Schreibrechte gibt
Code:
chmod -R 777 /var/www
Was aber SEHR gefährlich ist in Produktiv-Umgebungen !

oder

Lösung 3.)
Du nimmst die User,die zu den Gruppen ftpuser/ftprootuser gehören in die Gruppe des WWW-Server-Users auf (wahrscheinlich nogroup,www oder apache) und bist damit auf der sicheren Seite ;)

Editiere dazu die /etc/groups und füge die User per Hand dazu, odermach das im Gnome/KDE in der entsprechenden Benutzerverwaltung.

Die Gruppe und den User, unter der der WWW-Server ausgeführt wird, findest du in der httpd.conf, die default in /etc/httpd oder /etc/apache2 liegen muss.

LG
Andy
 
Zuletzt bearbeitet:
Danke hab ich soweit alles verstanden und deine Lösung hat bestens geklappt(habe mich für die 3. Lösung entschieen).
 
Sorry hatte mich vertan es ging wiel ich noch chmod 777 auf /var/www hatte.

Also ich hab nun in /etc/apache2/apache2.conf nach User und Group gesucht und da steht. user: www-data und user: www-data
nun hab ich in etc/group bei der gruppe http://www.data alle user aus den beiden Gruppen(ftpuser und ftprootuser) eingetragen und dann noch per chmod 775 /var/www (damit die gruppe auch schreiben darf) die Rechte gesetzt. Wenn ich nun mit einem User aus der Gruppe www-data ein Verzeichnis im Verzechnis /var/www erstellen möchte kommt immer noch die Fehlermeldung :"permission denied".

Oder hab ich was falsch verstanden?

Gruss
Caramba

edit: laut ls- l /var/ ist www/ user:root und group: root (falls das relevant ist)
 
Du hast das schon richtig verstanden - bleibt die Frage, was da quer schlägt. Hast Du den Indianer (Apache) nach dieser Änderung mal neu gestartet ? Sollte zwar keinen Effekt haben, aber ich bin mir nicht ganz sicher.

Was /var besagt, ist irrelevant, da /home auch root gehört, und jeder User kann in einem $HOME-Unterveichnis machen, was er will *g*
 
Ja hab ich, keine Verbesserung.
Habe alles nochmal nachgeguckt und es ist alles soweit richtig.

Gäbe es sonst noch eine andere sichere Lösung?
Bzw wie wird sonst sowas gelöst?
 
Ah moment ich hab vielleicht eine Idee.
Kann es sein das der FTP nicht weiss zu welcher Gruppe ich gehöre, weil ich kein Shell des users anfordere?

auschnitt aus der proftpd.conf
Code:
# Root-Login auf FTP Server verbieten und gültige Shell verlangen (in /etc/shell /wenn auf on
<Global>
RootLogin off
RequireValidShell off
</Global>




edit: wenn ich das require auf on setzte kann ich mich mit keinem user mehr im ftp einloggen,
fehlt wohl das shell, ich hab allerdings auch keine ahnung wie ich das erstelle.
 
Zuletzt bearbeitet:
wenn ich proftpd neustarte kommt auch noch folgender fehler(vielleicht ist es ja relevant):

Code:
Stopping ftp server: proftpd.
Starting ftp server: proftpd - IPv6 getaddrinfo 'h1304316.stratoserver.net' error: Name or service not known
 
Zum 1. Problem:

Die Option "RequireValidShell On" bezweckt, dass sich NUR User am FTP anmelden können, die als Benutzer fungieren und sich am System (Shell) anmelden dürfen.

Steht diese Option auf "On", musst Du in /etc/passwd dafür sorgen, dass der/die FTP-User einen Shell-Account haben.

zB:
User1:x:"Testuser":/homt/User1:/bin/bash =>> Kann sich dann am FTP anmelden,
wenn Option auf "On" ist.

oder sys:::/dev/null:/bin/false ==>> Kann sich dann NICHT anmelden, weil der User kein Benutzer-Account ist, sondern ein System-Account ist.

Änderst Du nun "/bin/false" auf "/bin/bash", gibst ihm ein Homeverzeichnis, dass real existieren MUSS um sich anmelden zu können und dann noch ein Passwort, so ist das danach ein Benutzer-Account wie jeder andere (macht aber keinen Sinn!) und auch er kann sich am FTP anmelden.

Belasse aber die Option lieber auf "Off ;)

Zur Fehlermeldung:
Diese Meldung taucht auf, wenn Dein System so eingerichtet ist, dass es im Netzwerk IPv4 nutzt und nicht IPv6 - ersteres ist weit verbreitet, IPv6 leider noch immer nicht so richtig,
ProFTPd unterstützt das aber und wirft eben diesen Fehler raus, da er den Host nicht auflösen kann - scheinbar unterstützt Dein Kernel zwar IPv6, Dein DNS etc jedoch nicht. Kannst Diesen Fehler also beruhigt ignorieren, da IPv6 Untersützung im ProFTPd ein Fallback auf IPv4 hat ;)

Zum eigentlichen Problem:
mach mal ein ls -l in /var um zu sehen, wie dort die Rechte sind. Normal muss dann /var/www auf dem user www-data zeigen und seine Gruppe. NICHT auf root - weder in der Gruppe, noch im User.

//////////////////
Edit:
Schau malnach,wodie User Ihr Home-Verzeichnis haben, kann sein, dassProFTPd sokonfiguriert ist, dass er die User im Home einsperrt. Wenn Homenicht in /var/www ist, kann ProFTPd evtl. den Zugriff verweigern. Ich tippe aber auf meinen vorherigen Beitrag, dass einVerzeichnisrecht nicht passt ;)
 
Zuletzt bearbeitet:
Zurück