NetVision-Technik

Zur?ck   NetVision-Technik > Forum > Server > Webanwendungen

Webanwendungen Alle Fragen zu Installation und Problemlösung (Torrent-Flux, Hostsoftware, Serversoftware)

Antwort
 
Themen-Optionen Ansicht
Alt 27.12.2008, 12:35   #1
Entity
König
Punkte: 22.510, Level: 93 Punkte: 22.510, Level: 93 Punkte: 22.510, Level: 93
Levelaufstieg: 16% Levelaufstieg: 16% Levelaufstieg: 16%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Artikel Benutzer besitzt 1x Hilfe Level 1 Benutzer besitzt 1x Fortgeschrittener Benutzer besitzt 1x Badboy Benutzer besitzt 1x Ideen-Spender Benutzer besitzt 1x Entwicker I
 
Benutzerbild von Entity
 
Registriert seit: 05.06.2008
Beitr?ge: 1.177
Abgegebene Danke: 100
Erhielt 229 Danke für 44 Beiträge
Downloads: 113
Uploads: 0
Nachrichten: 1203
Renommee-Modifikator:
1763 Entity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes AnsehenEntity genießt hohes Ansehen
Beitrag ProFTPd mit MySQL Unterstützung (FTP benutzer per

Installieren von ProFTPd mit MySQL Unterstützung (FTP benutzer per MySQL)

Erstmal kaffee kochen damit es funktioniert ^^

Nun müssen wir zuersteinmal mit einem apt-get install befehl beginnen.


Code:
apt-get install proftpd-mysql
Bei der Installation das evt. auftretende Fenster mit OK bestätigen.

Nun funktioniert das ganze natürlich noch nicht.

Um FTP User per MySQL hinzufügen zu können, fehlt uns noch eine Verbindung ProFTPd <-> MySQL und natürlich ein Allround User mit dem die ganzen User auf dem Server laufen.

Diesem FTP-User gehören später alle Ordner/Dateien im FTP bereich, sodass man keine spezifischen Rechte mehr für jeden einzelnen Benutzer setzen muss.

DIesen legen wir also dann mal als erstes an mit einer UserID die nicht im System belegt ist. Ich hab hierbei einfach aufs Geratewohl die ID 2593 genommen. Vorher müssen wir allerdings eine Gruppe erstellen, in der wir den User "parken". Hierbei nehme ich auch meine ID 2593.

Somit lauten die 2 Befehle:

Code:
groupadd -g 2593 ftpgroup
Code:
useradd -u 2593 -s /bin/false -d /bin/null -g ftpgroup ftpuser
Hiermit haben wir nun also unsern FTPUser.

Damit der auch auf alles zugreifen kann, müssen wir das FTP verzeichnis komplett dem Benutzer zuweisen. Dies geht mit dem Befehl

Code:
chown -hRv ftpuser:ftpgroup /ordner/ordner
Wenn wir FTP benutzer für einen Webspace im Apache Verzeichnis /var/www erstellen wollen, dann geht das mit

Code:
chown -hRv ftpuser:ftpgroup /var/www
Jetzt fehlt also nur noch die Verbindung ProFTPd <-> MySQL. UNd dies wird jetzt ein bisschen aufwändiger.

Als erstes müssen wir im MYSQL einen User für ProFTPd erstellen. Hierbei bietet sich besonderes Phpmyadmin an: Man klickt auf SQL und gibt folgenden Befehl ein:

Code:
CREATE DATABASE ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Bitte das Passwort auch ersetzen!!

Als nächstes legen wir dann (wieder in phpmyadmin über DB aus wählen -> Ftp -> SQL) die Tabellen an.

Code:
CREATE TABLE ftpgroup    (
   groupname varchar(16) NOT NULL default '',
   gid smallint(6) NOT NULL default '2593',
   members varchar(16) NOT NULL default '',
   KEY groupname (groupname)
   ) TYPE=MyISAM COMMENT='ProFTP group table'; CREATE TABLE ftpquotalimits    (
   name varchar(30) default NULL,
   quota_type enum('user','group','class','all') NOT NULL default 'user',
   per_session enum('false','true') NOT NULL default 'false',
   limit_type enum('soft','hard') NOT NULL default 'soft',
   bytes_in_avail int(10) unsigned NOT NULL default '0',
   bytes_out_avail int(10) unsigned NOT NULL default '0',
   bytes_xfer_avail int(10) unsigned NOT NULL default '0',
   files_in_avail int(10) unsigned NOT NULL default '0',
   files_out_avail int(10) unsigned NOT NULL default '0',
   files_xfer_avail int(10) unsigned NOT NULL default '0'
   ) TYPE=MyISAM; CREATE TABLE ftpquotatallies    (
   name varchar(30) NOT NULL default '',
   quota_type enum('user','group','class','all') NOT NULL default 'user',
   bytes_in_used int(10) unsigned NOT NULL default '0',
   bytes_out_used int(10) unsigned NOT NULL default '0',
   bytes_xfer_used int(10) unsigned NOT NULL default '0',
   files_in_used int(10) unsigned NOT NULL default '0',
   files_out_used int(10) unsigned NOT NULL default '0',
   files_xfer_used int(10) unsigned NOT NULL default '0'
   ) TYPE=MyISAM; CREATE TABLE ftpuser    (
   id int(10) unsigned NOT NULL auto_increment,
   userid varchar(32) NOT NULL default '',
   passwd varchar(32) NOT NULL default '',
   uid smallint(6) NOT NULL default '2593',
   gid smallint(6) NOT NULL default '2593',
   homedir varchar(255) NOT NULL default '',
   Shell  varchar(16) NOT NULL default '/sbin/nologin',
   count int(11) NOT NULL default '0',
   accessed datetime NOT NULL default '0000-00-00 00:00:00',
   modified datetime NOT NULL default '0000-00-00 00:00:00',
   PRIMARY KEY (id),
UNIQUE KEY userid (userid)
   ) TYPE=MyISAM COMMENT='ProFTP user table';
Hiermit sind wir dann im MYSQL Bereich fertig und können phpmyadmin zumachen. PUH! Erstmal ein SChluck aus unserer Kaffeekanne (siehe Utensilien die man benötigt ganz oben^^)

Jetzt muss nur noch der proftpd.conf (/etc/proftpd/proftpd.conf) beigebracht werden, wie sie zu MySQL verbinden soll!

Als allererstes aber müssen wir ProFTPd sagen, dass wir MySQL und nicht PostgreSQL benutzen.

Dazu öffnen wir die modules.conf folgendermaßen:

Code:
nano  /etc/proftpd/modules.conf
Hier suchen wir nach folgender Stelle:

Code:
LoadModule mod_sql_postgres.c
und machen davor ein # um es auszukommentieren und speichern dann mit STRG+O die Datei.

Als nächstes nehmen wir uns die proftpd.conf mit dem Befehl

Code:
nano  /etc/proftpd/proftpd.conf
DABEI UNBEDINGT DRAUF ACHTEN DASS DAS PASSWORT (BEI "SQLConnectInfo ftp@localhost proftpd password" IN DAS PASSWORT GEÄNDERT WIRD DASS MAN FÜR DEN FTP BENUTZER IN MYSQL ANGELEGT HAT!

Code:
DefaultRoot ~


# The passwords in MySQL are encrypted using CRYPT
SQLAuthTypes            Plaintext Crypt
SQLAuthenticate         users* groups*


# used to connect to the database
# databasename@host database_user user_password
SQLConnectInfo  ftp@localhost proftpd password


# Here we tell ProFTPd the names of the database columns in the "usertable"
# we want it to interact with. Match the names with those in the db
SQLUserInfo     ftpuser userid passwd uid gid homedir Shell 

# Here we tell ProFTPd the names of the database columns in the "grouptable"
# we want it to interact with. Again the names match with those in the db
SQLGroupInfo    ftpgroup groupname gid members

# set min UID and GID - otherwise these are 999 each
SQLMinID        500

# create a user's home directory on demand if it doesn't exist
SQLHomedirOnDemand on

# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser

# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

SQLNamedQuery gettally  SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
SQLNamedQuery getlimit  SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
SQLNamedQuery getfree   SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"

SQLShowInfo   LIST    "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."


RootLogin off
RequireValidShell off
Dies reicht dann auch mit der Proftpd.conf.

Dann öffnen wir wieder phpmyadmin und tragen unsere FTP Gruppe ein. (DB auswählen -> ftp -> SQL)

Code:
INSERT INTO `ftpgroup`    (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2593, 'ftpuser');
Jetzt können wir User hinzufügen.

Dies geht ganz einfach mit dem BEfehl (DB Auswählen -> ftp -> SQL):

Code:
INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`,    `count`, `accessed`, `modified`) VALUES (1, 'BENUTZERNAME', 'PASSWORT', 2593, 2593,    '/VERZEICHNIS/VERZEICHNIS', '/sbin/nologin', 0, '', '');
Bitte genau drauf achten dass die erfoderlichen Daten ersetzt werden.

Nach der ganzen Prozedur den ProFTPd Server neustarten mit

Code:
/etc/init.d/proftpd restart
Und dann sind wir fertig mit unserem FTP Usern verarbeiten.. auf diese art können ganz einfach neue hinzugefügt werden! Es sollte nur beachtet werden dass die Shell  (/sbin/nologin) und die gid/uid (beidesmal 2593) nicht verändert werden.

Außerdem sollte beachtet werden dass die User auf das Verzeichnis dass wir ihnen zuweisen Rechte haben - im zweifelsfall also ein

Code:
 chown -hRv ftpuser:ftpgroup /verzeichnis/verzeichnis
Ausführen.

Ge?ndert von Entity (14.08.2009 um 20:29 Uhr)
Entity ist offline   Mit Zitat antworten Nach oben
Folgende 11 Benutzer sagen Danke zu Entity für den nützlichen Beitrag:
$iMpLy (27.12.2008), Bluesteel (27.12.2008), BonkeR (19.02.2009), Cerberus (28.12.2008), djfreakmen (05.06.2009), DoLo (27.12.2008), Energy (31.03.2009), Gandalf (27.12.2008), Nick (09.06.2009), Odin (12.08.2009), SonGohan (18.08.2011)
Alt 26.09.2010, 23:12   #2
Odin
Erfahrener Benutzer
Punkte: 5.361, Level: 47 Punkte: 5.361, Level: 47 Punkte: 5.361, Level: 47
Levelaufstieg: 6% Levelaufstieg: 6% Levelaufstieg: 6%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Artikel Benutzer besitzt 1x Anfänger Benutzer besitzt 2x Grundwissen Benutzer besitzt 1x Hilfe Level 1 Benutzer besitzt 1x Angel
 
Benutzerbild von Odin
 
Registriert seit: 16.06.2008
Ort: Norddeutschland
Alter: 45
Beitr?ge: 382
Abgegebene Danke: 158
Erhielt 34 Danke für 4 Beiträge
Downloads: 30
Uploads: 0
Nachrichten: 170
Renommee-Modifikator:
449 Odin ist ein LichtblickOdin ist ein LichtblickOdin ist ein LichtblickOdin ist ein LichtblickOdin ist ein LichtblickOdin ist ein Lichtblick
Standard

mal ne frage kann jemand ein updat von der anleittung machen. da ja mitlerweile auch neue phpmyadmin versinen draussen sind und der befehl:

HTML-Code:
 apt-get install proftpd-mysql
zum beispiel gar nicht mehr geht und man jetzt das so machen muss:

HTML-Code:
 apt-get install proftpd proftpd-mod-mysql mysql-server-5.0 mysql-client-5.0
wäre klasse, da ftp nicht meine welt ist und für nen flux mit ein paar leuten doch recht nützlich ist
Odin ist offline   Mit Zitat antworten Nach oben
Alt 27.09.2010, 01:07   #3
Lex
Böser Mod / NvT Terrorist
Punkte: 48.916, Level: 100 Punkte: 48.916, Level: 100 Punkte: 48.916, Level: 100
Levelaufstieg: 0% Levelaufstieg: 0% Levelaufstieg: 0%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Auszeichnungen
Artikel Benutzer besitzt 1x Hilfe Level 3 Benutzer besitzt 1x Hilfe Level 2 Benutzer besitzt 1x Badboy Benutzer besitzt 1x Anfänger Benutzer besitzt 1x Hilfe Level 1 Benutzer besitzt 1x Helfer Benutzer besitzt 1x Ideen-Spender
 
Benutzerbild von Lex
 
Registriert seit: 16.09.2009
Ort: Wien
Beitr?ge: 2.468
Abgegebene Danke: 188
Erhielt 562 Danke für 126 Beiträge
Downloads: 11
Uploads: 0
Nachrichten: 10609
Renommee-Modifikator:
4013 Lex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes AnsehenLex genießt hohes Ansehen
Standard

Ich verwend dafür lieber vsFTP, ne Anleitung gibts hier, funktioniert einwandfrei
Debian Root Tutorial (SSH + TorrentFlux) - NetVision-Technik

Lg Lex
__________________
Lex the NetVision Terrorist

june: Feinfühlig? Ich bin Typus Axt im Walde
Lex: Axt? Was bin dann ich? Sägewerk?
Cerberus
: nee --du bist Waldbrand ...
Lex ist offline   Mit Zitat antworten Nach oben
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Template-Modifikationen durch TMS