To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.

Chroot/de

From ZNC
Jump to navigation Jump to search

Dieser Artikel in Englisch


This message box is using an invalid "type=serious" parameter and needs fixing.

[[Category:Wikipedia message box parameter needs fixing|Template:Main otherChroot/de]]


Dieser Artikel beschreibt, wie man ZNC in einer chroot-Umgebung auf Debian einrichtet.


Kompiliere und installiere ZNC normal

Details: Installation

Füge nun einen neuen Benutzer für ZNC ins System ein

Beispiel: bouncer

adduser bouncer

Logge dich nun als Benutzer "bouncer" ein und konfiguriere ZNC normal über diesen Benutzer

Details: Konfiguration

Wechsel nun zurück zu Benutzer root und erstelle das Verzeichnis für die chroot Umgebung

Beispiel: /var/chroot/

mkdir /var/chroot

Erstelle nun folgende Unterverzeichnisse

/var/chroot/ +

etc/
dev/
usr/
usr/lib/
usr/local/
usr/local/share
usr/local/bin
usr/local/lib
lib/
home/
home/bouncer

Wechsel nun in das neu erstellte home-Verzeichnis und führe folgendes aus

chown bouncer:bouncer bouncer

Nun musst du folgende Befehle im neu erstellten dev-Verzeichnis aufrufen (vorher wechseln)

mknod -m 644 random c 1 8
mknod -m 644 urandom c 1 9
mknod -m 666 null c 1 3

Führe nun ldd /usr/bin/znc aus, um eine Liste der benötigten Bibliotheken zu bekommen

Beispiel:

ldd /usr/bin/znc
linux-gate.so.1 =  ()
libdl.so.2 = /lib/tls/i686/cmov/libdl.so.2 ()
libssl.so.0.9.8 = /usr/lib/i686/cmov/libssl.so.0.9.8 ()
libcrypto.so.0.9.8 = /usr/lib/i686/cmov/libcrypto.so.0.9.8 ()
libstdc++.so.6 = /usr/lib/libstdc++.so.6 ()
libm.so.6 = /lib/tls/i686/cmov/libm.so.6 ()
libgcc_s.so.1 = /lib/libgcc_s.so.1 ()
libc.so.6 = /lib/tls/i686/cmov/libc.so.6 ()
/lib/ld-linux.so.2 ()
libz.so.1 = /usr/lib/libz.so.1 ()

Kopiere nun die benötigten Dateien

cp /lib/mylibname /var/chroot/lib/
cp /usr/lib/mylibname /var/chroot/usr/lib/

Stelle bitte sicher, dass du keine Datei vergessen hast!

Du musst nun die folgenden Dateien kopieren, damit die Namensauflösung funktioniert

/etc/hosts
/etc/resolv.conf
/lib/libnss_dns.so.2 (Könnte auch woanders liegen, frag am besten locate)
/lib/libresolv.so.2 (Könnte auch woanders liegen, frag am besten locate)

Kopiere die ZNC Daten

cp /usr/local/bin/znc* /var/chroot/usr/local/bin/znc
cp -r /usr/local/share/znc /var/chroot/usr/local/share/
cp -r /usr/local/lib/znc /var/chroot/usr/local/lib/

Wechsel zum Benutzer "bouncer" und kopiere die Konfiguration

cp -r /home/bouncer/.znc /var/chroot/home/bouncer/

ZNC starten

Gehe wieder als root Benutzer vor. Du kannst nun ZNC starten:

start-stop-daemon --chroot /var/chroot/ --chuid bouncer:bouncer --start --exec /usr/local/bin/znc

... und stoppen mit:

start-stop-daemon --chroot /var/chroot/ --chuid bouncer:bouncer --stop --exec /usr/local/bin/znc