|
|||||||
| Registrieren | Hilfe | Benutzerliste | Interessengemeinschaften | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
#1
|
|||
|
|||
|
Hallo,
Ich wollte MySql + MySqlDump für Jailuser freigeben, dafür habe ich beide Anwendungen in "Jailkit chrooted Anwendungen" eingetragen und neue Jails erstellt. Es hat alles einwandfrei funktioniert, allerdings nur bis zu ersten Neustart des Systems/MySql-Daemons. So habe ich mich auf die Suche nach Fehler im System begeben, konnte aber nichts feststellen. Nach einem Neustart kommt immer ein Fehler bei Jail-Benutzer etwa : "Kann nicht über Sockel mysqld.sock Verbindung herstellen…." Das, was unten aufgeführt ist, ist zu Information, wie ich auf die Lösung gekommen bin. Und zweckt in erster Linie der Hilfe bei Fehlersuche in meinem Skript. Falls ich etwas FALSCHES wiedergegeben oder von sich geschrieben habe, dann liegt es an meine geringe Kenntnisse in Linux/Unix-Systemen oder Informationquellen, die ich genutzt habe. Berichtigt es bitte um Kettenreaktion der falschen Beiträge zu stoppen, denn die Suchmaschinen liefern auch Schrott, wobei dieses Thread beides sein kann. Quellen: " Jailkit - chroot jail utilities " , " http://www.howtoforge.*/forum/ " , " gidf, wie immer nützliche in Lesezeichen nich angelegt !!!"Jailkit-Doku --> jk_cp und jk_init tun fast das gleiche(s. Doku) "-k": "Try to create hardlinks instead of copying the files. If linking fails it falls back to copying.." Ich habe also gedacht, dass jailkit selbst erkennt welche Sockel er für MySql mitkopiert(bzw. ein Link erstellt) und gegebenenfalls überwacht, weil im CHROOTs war diese immer zu finden. Dann habe ich in einem anderen englischen Forum gleiches Problem gefunden und festgestellt, dass es nicht der Fall ist und diese Problem noch nicht gelöst ist, und Jailkit kann nicht mit Unix-Sockets(Ausnahme: jk_socketd für LOG Socket) umgehen. Eine weitere Suche hat ergeben, dass die Sockets keine gewöhnliche Dateien sind und werden erst erstellt, wenn daemon gestartet wird, und sollten nicht als Dateien, sondern als Geräte angesehen/behandelt werden. Erste positive ergebniss der Suche in "ISPConfig 3 Source" war die Datei "/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh" : Code:
#################################################################################### … # mysql needs the socket in the chrooted environment mkdir $CHROOT_HOMEDIR/var mkdir $CHROOT_HOMEDIR/var/run mkdir $CHROOT_HOMEDIR/var/run/mysqld # ln /var/run/mysqld/mysqld.sock $CHROOT_HOMEDIR/var/run/mysqld/mysqld.sock if [ -e "/var/run/mysqld/mysqld.sock" ] then ln /var/run/mysqld/mysqld.sock $CHROOT_HOMEDIR/var/run/mysqld/mysqld.sock fi … ################################################################################# Und so habe ich mich entschlossen etwas für Lösung dieses Problems zu unternehmen. Folgendes war Ziel: 1. alle CHROOTs finden.(kein Problem mit MySQL-Abfrage) 2. Jedes neustart des MySql-Servers muss neue Socket bei CHROOTs bereitstellen. 3. Muss automatisch Funktionieren. Und nicht Lastig sein, möglichst ohne extra DAEMON dafür. Und das ist dabei rausgekommen: 1. Geht auch ohne MySQL-Abfrage. Mit kleiner INJEKTION in /etc/init.d/mysql 2. OHNE Extra-DAEMON 3. fix-skript für bestehende CHROOTs 4. kleines Update-Skript für Zufügen neuen Anwendungen in "Jailkit chrooted Anwendungen" für alle CHROOTs. "Könnte in eine der neuen Versionen von ISPCONFIG3 fließen, weil minestens 2 Threads für diese Problem hier gesehen." Weiter geht es mit HowTo: - fix-Jailkit-mysqld.sock. Wie immer . . . alles ohne Gewähr, testet es auf eigene Gefahr. als erstes ladet jk-mysql.sock-fix.zip Archiv [für Könner *.txt] aus Anhang herunter und schiebt enthaltene Dateien in Verzeichnis "/usr/local/ispconfig/server/scripts/" dann benennt folgende Dateien um: "create_jailkit_chroot.sh" => z.B "create_jailkit_chroot.sh.Original" "create_jailkit_chroot.sh.fix" => "create_jailkit_chroot.sh" und setzt Rechte der Dateien "create_jailkit_chroot.sh" und "jailkit_mysql_sock_fix.sh". Code:
chown ispconfig:ispconfig create_jailkit_chroot.sh jailkit_mysql_sock_fix.sh cmod 751 create_jailkit_chroot.sh jailkit_mysql_sock_fix.sh ACHTUNG !!! Sehr aufmerksam!!! Die richtige Zeile finden!!! ACHTUNG 1. beim CASE-Verzweigung für 'start' bei ca Zeile 122 Code:
. . .
# Now start mysqlcheck or whatever the admin wants.
output=$(/etc/mysql/debian-start)
[ -n "$output" ] && log_action_msg "$output" # <-- ca Zeile 121
#######################################################################################
# Jailkit-mysqld.sock Problem
./usr/local/ispconfig/server/scripts/jailkit_mysql_sock_fix.sh "mountAll"
#######################################################################################
else
log_end_msg 1
log_failure_msg "Please take a look at the syslog"
fi
fi
. . .
Code:
. . .
# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
# at least for cron, we can rely on it here, too. (although we have
# to specify it explicit as e.g. sudo environments points to the normal
# users home and not /root)
#######################################################################################
# Jailkit-mysqld.sock Problem
./usr/local/ispconfig/server/scripts/jailkit_mysql_sock_fix.sh "umountAll"
#######################################################################################
log_daemon_msg "Stopping MySQL database server" "mysqld"
if ! mysqld_status check_dead nowarn; then
. . .
Wenn web-Ordner von normalen Installation abweichen, dann in "jailkit_mysql_sock_fix.sh" reinschauen und jails="/var/www/clients/client*/web*/bin" anpassen. jetzt werden Bestehende Jail-CHROOTs gefixt (alte Hardlinks löschen -> einfache "Datei/je CHROOT" mit touch erstellen -> mysqld.sock auf diese mounten) Code:
/./usr/local/ispconfig/server/scripts/jailkit_mysql_sock_fix.sh -fixAll ![]() |
|
#2
|
|||
|
|||
|
Danke für den Fix!
|
|
#3
|
|||
|
|||
|
Hi,
ich habe meine "Jailkit chrooted Anwendungen" um /usr/bin/mysql und /usr/bin/mysqldump erweitert. Es steht auch korrekt in der server-Tabelle der ispc-DB drin, aber irgendwie werden die Binaries nicht mit kopiert beim Anlegen der chroot-Umgebung ![]() Habt Ihr vielleicht eine Idee woran das liegen kann?
__________________
// Grüße Micha 11x Server mit ISPConfig 2.2.37 @ ubuntu 8.04 LTS (Apache, MySQL, Postfix, Courier, ClamAV, SpamAssassin) _5x Server mit ISPConfig 3.0.33 @ ubuntu 8.04 LTS (Apache, MySQL, Postfix, Dovecot, ClamAV, SpamAssassin) |
|
#4
|
|||
|
|||
|
Wenn es um bestehende CHROOTs geht dann führe bitte mal folgendes aus:
Code:
./jailkit_mysql_sock_fix.sh -updateAll '/usr/bin/mysql /usr/bin/mysqldump' ./jailkit_mysql_sock_fix.sh -fixAll Code:
... # Costomize only if "System" -> "Server Config" -> "Web" -> "Website path" in ISPc-UI modified. jails="/var/www/clients/client*/web*/bin" #finds all ISPCONFIGs CHROOTs !-> some Jailkits file schould be includet in String, for example "*/bin"!!! ### ... Geändert von Rafael.K (19.08.2011 um 19:09 Uhr). |
|
#5
|
|||
|
|||
|
Hallo Rafael,
soweit, so klar. Aber bei mir befinden bei neu angelegten chroots die MySQL-Binaries gar nicht erst in der chroot-Umgebung. Das ist das, was mich im Moment stutzen läßt.
__________________
// Grüße Micha 11x Server mit ISPConfig 2.2.37 @ ubuntu 8.04 LTS (Apache, MySQL, Postfix, Courier, ClamAV, SpamAssassin) _5x Server mit ISPConfig 3.0.33 @ ubuntu 8.04 LTS (Apache, MySQL, Postfix, Dovecot, ClamAV, SpamAssassin) |
|
#6
|
|||
|
|||
|
Wenn Jailkit richtig installiert und konfiguriert ist sollte es keine Probleme geben. wenn nicht dann kannst du das hier versuchen.
bzw: Debugging in der Datei "/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh" erstellen. Dazu muss man diese Datei anpassen: also Kommentar bei "jk_cp -k ........" setzen und "echo -e "` ...... " Zeile einfügen etwa so : Code:
... #jk_cp -k $CHROOT_HOMEDIR $CHROOT_APP_PROGRAMS fehler=`jk_cp 2>&1 -k $CHROOT_HOMEDIR $CHROOT_APP_PROGRAMS` echo -e "`date +%d.%m.%y-%R:%S` : `basename $0` -------------------------------------\n uebergeben : \t CHROOT_HOMEDIR = $1 \n\t\t CHROOT_APP_SECTIONS = $2 \n\n Fehler: \t$fehler" >> "/var/www/create_jailkit_programs.sh.log" und "Fehler: .... " beachten. PS: "/var/www/create_jailkit_programs.sh.log" gegebenenfalls anpassen. und poste bitte Inhalt der "/var/www/create_jailkit_programs.sh.log" Datei. Geändert von Rafael.K (19.08.2011 um 18:54 Uhr). |
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:03 Uhr.



1Likes

gidf, wie immer nützliche in Lesezeichen nich angelegt
!!!"






Linear-Darstellung
