Ich weiß seit Kurzem mehr darüber fakechroot
. Soweit ich weiß, scheint es gefährlich zu sein, da es die Benutzerrechte erhöht, selbst wenn es sich in chroot befindet. Ich weiß davon, fakeroot
aber es ist nicht dasselbe, da man damit nichts machen kann, was Root erfordert.
Allerdings fakechroot
können Sie Dinge ausführen, die Root-Rechte in Chroot erfordern. Bedeutet das, dass fakechroot
normale Benutzer die Möglichkeit haben, Chroot zu rooten und dann als Root auf dem Host auszubrechen?
Ich habe auf der Manpage gelesen, dass fakechroot
die Benutzerrechte nicht erhöht werden, und ich bin nicht sicher, ob ich das ganz verstehe.
Antwort1
Einige Linux-Anwendungen funktionieren nur, wenn der aktuelle Benutzer ist root
. Die meisten dieser Anwendungen beziehen sich auf Änderungen an Linux selbst und sind daher vor normalen Benutzern geschützt.
Manchmal möchten wir jedoch als normaler Benutzer solche Befehle ohne Erhöhung auf ausführen root
, nur um diese Befehle vorübergehend für bestimmte Zwecke zu verwenden.
Solche Befehle stellen keine Sicherheitslücke dar, da sie unter dem aktuellen Benutzer ausgeführt werden und keine wirklichen Auswirkungen auf die laufende Linux-Version haben.
Das beste Beispiel für solche Befehle ist fakeroot
. Seine Funktion ist es,vorgebendass der aktuelle Benutzer ist root
, ohne dass dies tatsächlich geschieht.
Dadurch können Programme, die als Root ausgeführt werden sollen, tatsächlich als normaler Benutzer ausgeführt werden, während fälschlicherweise angenommen wird, dass die Root-erforderlichen Vorgänge erfolgreich sind.
Dies wird typischerweise beim Erstellen eines Pakets verwendet, damit der Installationsvorgang des zu installierenden Pakets ohne Fehler fortgesetzt werden kann, auch wenn es ausgeführt wird chown root:root
, oder install -o root
usw.
fakeroot
merkt sich die falschen Eigentümer, die es diesen Dateien angeblich zugewiesen hat, sodass nachfolgende Vorgänge, bei denen die Eigentümerschaft überprüft wird, root
den Eigentümer und nicht den echten Eigentümer anzeigen.
Dies ermöglicht es beispielsweise, bei nachfolgenden tar
Ausführungen Dateien als root-eigen zu speichern. fakeroot
erstellt in diesem Fall ein Tarball mit root- und suid-eigenen Dateien. Sie können dieses Tarball jedoch nicht extrahieren und die Berechtigungen beibehalten, es sei denn, Sie tun dies als root, ohne dass die Rechte erhöht werden.
fakeroot
ermöglicht dann das Ausführen eines Builds als normaler Benutzer, wobei die Effekte des Builds erhalten bleiben, wenn es als Root ausgeführt worden wäre, sodass sie später erneut ausgeführt werden können. Um die Effekte „wirklich“ anzuwenden, sind echte Root-Berechtigungen erforderlich, für die es fakeroot
keine Möglichkeit gibt, diese zu erhalten.
Ein weiteres Beispiel istAbonnieren.
fakechroot
ist ein normales Nicht-Setuid-Programm. Es erhöht weder die Berechtigungen eines Benutzers noch verringert es die Sicherheit des Systems. Es erstellt eine Umgebung, in der es möglich ist, den Befehl chroot(8) ohne Root-Berechtigungen zu verwenden, was nützlich ist, um apt
Pakete ohne Root-Berechtigungen zu installieren. Der Benutzer erstellt auf diese Weise eine Root-Umgebung in seiner eigenen kleinen Blase, ohne andere Benutzer des Systems zu beeinträchtigen.
fakechroot
fakeroot
stellt die Funktionalität nicht bereit und muss daher fakechroot
über den fakeroot
Befehl aufgerufen werden. Diese beiden Befehle ergänzen sich und werden häufig zusammen verwendet.