Falsche Dateiberechtigungen im ganzen System
Hallo liebe Liste, ein Benutzer hat auf seinem PC ein chmod -R 777 *.* ausgeführt, das leider bei vielen Dateien und Programmen erfolgreich war (laut Auskunft nicht als root). Ich würde gerne mit zypper alle Programme einfach neu installieren. Meine Frage: Werden bei einem zypper install die Dateiberechtigungen wieder so gesetzt, wie sie im rpm vorgesehen waren? Wenn nein, muss ich mir ein anderes Verfahren überlegen. Vielen Dank! Viele Grüße Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Fri, 29 Nov 2019 17:19:29 +0100 schrieb Peter Geerds <linux@himmelsgetrei.de>: Hallo Peter!
(laut Auskunft nicht als root) Das ist eine entscheidende Frage für den Schaden, den er angerichtet hat. Schau Dir mal stichprobenartig Dateien unter /usr/bin und /bin an. Echte Programmdateien sollten 755 haben, wenn die 777 haben, hat er doch als root gearbeitet. Unter /etc haben Dateien in der Regel 644 und Verzeichnisse 755
Einen umfassenderen Überblick gibt Dir: find /[usr/bin] -perm 777 -print
Meine Frage: Werden bei einem zypper install die Dateiberechtigungen wieder so gesetzt, wie sie im rpm vorgesehen waren? Sollten sie eigentlich, da die Dateien aus den rpm-Paketen neu ins System kopiert werden. Selbst erstellte Dateien und alles, was unter $HOME liegt, erwischst Du so aber nicht.
rpm --setperms $PACKAGE sollte, wenn ich das richtig verstehe, auch funktionieren. Aber ohne Gewähr, habe ich noch nie ausprobiert! Noch eine andere Idee: Die korrekten Zugriffsrechte für sehr, sehr viele Dateien (wie vollständig die Listen sind, kann ich Dir leider nicht sagen) findest Du unter /etc/permissions* (ja nach dem, welche Sicherheitsstufe Du gewählt hast). chkstat (Man-Page für die genauen Optionen) setzt die Zugriffsrechte wieder so, wie in permissions* aufgeführt. Im Home-Verzeichnis wirds schon schwieriger. Üblicherweise will man dort 600 für Dateien und 700 für Verzeichnisse, aber ... Am Ende wird eine Menge Handarbeit übrigbleiben. Ob sich das lohnt und ob Du letztlich jedes Sticky Bit erwischt haben wirst oder irgendwo ein Sicherheitsloch zurückbleibt ...? Viele Grüße und Geduld Matthias -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Matthias, hallo zusammen, Am Freitag, 29. November 2019, 19:37:59 CET schrieb Matthias:
Die korrekten Zugriffsrechte für sehr, sehr viele Dateien (wie vollständig die Listen sind, kann ich Dir leider nicht sagen) findest Du unter /etc/permissions* (ja nach dem, welche Sicherheitsstufe Du gewählt hast). chkstat (Man-Page für die genauen Optionen) setzt die Zugriffsrechte wieder so, wie in permissions* aufgeführt.
/etc/permissions* enthält nur die Berechtigungen für Programme und andere Dateien, die je nach Sicherheitsstufe unterschiedliche Rechte bekommen (z. B. mit oder ohne suid-Bit oder capabilities). Das betrifft weniger als 1% der Programme. "Sicherheitsstufe" bezieht sich übrigens auf PERMISSION_SECURITY in /etc/sysconfig/security. Standard ist "easy local", ich bevorzuge "secure local" (auf dem Laptop mit ein paar Ergänzungen in permissions.local und polkit-default-privs.local) Es gibt übrigens auch noch die Variante "paranoid local", aber die sollte man nur nehmen, wenn man _genau_ weiß, was man tut. Gruß Christian Boltz --
Kann man das für alle MUAs sagen? Nein, wohl nicht. Es gibt todkranke, kranke (die durch richtige Konfiguration wieder gesund werden) und gesunde MUAs. [> Ratti und Mathias Bauer in suse-linux]
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am Fri, 29 Nov 2019 23:10:29 +0100 schrieb Christian Boltz <suse@cboltz.de>: Hallo Christian! Erstmal danke für die Erhellung.
Das betrifft weniger als 1% der Programme. Das sind dann doch weniger, als ich vermutete, und in sofern hilft es Peter auch weniger, als ich vermutete.
/etc/permissions* enthält nur die Berechtigungen für Programme und andere Dateien, die je nach Sicherheitsstufe unterschiedliche Rechte bekommen (z. B. mit oder ohne suid-Bit oder capabilities). Dann müßten aber in allen /etc/permissions* die gleichen Dateien und Verzeichnisse nur mit unterschiedlichen Rechten stehen, was so aber nicht der Fall ist.
Das bringt mich zu einer etwas OT Frage: Die Modify time der permissions* Dateien (außer *local natürlich) liegt bei mir ca. ein halbes Jahr nach dem letzten Update des Paketes Permissions. Werden die dynamisch z.B. bei der Installation von rpm-Paketen angepaßt oder von sonst irgend einem Mechanismus geändert?
Es gibt übrigens auch noch die Variante "paranoid local", aber die sollte man nur nehmen, wenn man _genau_ weiß, was man tut. Oh ja, ich wollt's mal wissen und hatte viel Spaß damit. ;-)
Vielen Dank nochmal und eine gute Nacht Matthias -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Vielen Dank für die vielen Hinweise! Das Misstrauen gegen den betreffenden Benutzer, dass er angeblich nicht als root gearbeitet hat, kann ich nur bestätigen. Es sollen u. a. Dateien in /usr/bin und /usr/sbin betroffen sein. Als Befehl hätte ich an ein zypper in -f $(rpm -qa --qf '%{NAME} ') gedacht, werde mir aber auch die anderen Vorschläge anschauen. Also nochmals: Vielen Dank! Viele Grüße Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Peter, hallo zusammen, Am Freitag, 29. November 2019, 17:19:29 CET schrieb Peter Geerds:
ein Benutzer hat auf seinem PC ein chmod -R 777 *.* ausgeführt, das leider bei vielen Dateien und Programmen erfolgreich war (laut Auskunft nicht als root).
Das widerspricht sich etwas - wenn die Berechtigungen von Programmen und Dateien (da Du zypper bemühen willst, vermute ich mal "außerhalb des Homeverzeichnisses") geändert wurden, spricht viel dafür, dass das chmod als root gelaufen ist.
Ich würde gerne mit zypper alle Programme einfach neu installieren.
Meine Frage: Werden bei einem zypper install die Dateiberechtigungen wieder so gesetzt, wie sie im rpm vorgesehen waren? Wenn nein, muss ich mir ein anderes Verfahren überlegen. Vielen Dank!
Prinzipiell schon: zypper in -f `rpm -qa` (das -f (force) ist wichtig, weil sonst nur eine Meldung kommt, dass das jeweilige Paket schon installiert ist) Es gibt aber auch etliche Dateien, die nicht direkt aus einem Paket stammen und daher die falschen Berechtigungen behalten werden - siehe dazu find /etc/ | xargs rpm -qf | grep 'not owned' (und dann nochmal für mindestens /boot/, /usr/ und /var/ ausführen). Die Korrektur der Rechte dieser Dateien sollte mit etwas Handarbeit und Nachdenken machbar sein, kostet aber Zeit. Ganz so einfach wie Du es gern hättest wird es also vermutlich nicht. Außerdem solltest Du zum Schluss noch systemweit nach Dateien mit 777- Rechten suchen und diese Rechte ebenfalls korrigieren. Immerhin bist Du nicht der Erste, der mit Problemen dieser Art zu kämpfen hat. Ich hab mal die passende Signatur rausgesucht ;-) Gruß Christian Boltz -- [chown-"Unfall"] Das was dann noch ueberbleibt sollte sich durch Raten und/oder anhand eventueller Fehlermeldungen korrigieren lassen ("work.users" in /var/lib/rpm/*? Nee, ich glaub nich ;)) [David Haller in suse-linux] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Fri, 29 Nov 2019, Christian Boltz schrieb:
Am Freitag, 29. November 2019, 17:19:29 CET schrieb Peter Geerds: [..]
Meine Frage: Werden bei einem zypper install die Dateiberechtigungen wieder so gesetzt, wie sie im rpm vorgesehen waren? Wenn nein, muss ich mir ein anderes Verfahren überlegen. Vielen Dank!
Prinzipiell schon: zypper in -f `rpm -qa`
(das -f (force) ist wichtig, weil sonst nur eine Meldung kommt, dass das jeweilige Paket schon installiert ist)
Einfacher dürfte sein: # rpm --setperms -a # chkstat --system /etc/permissions /etc/permissions.local (siehe man 5 permissions) Dazu dann noch 'rpm -Va' ... HTH, -dnh -- Die Signatur befindet sich aus technischen Gründen auf der Rückseite dieses Beitrages! -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Liste! Am 29.11.2019 um 23:04 Uhr schrieb David Haller:
# rpm --setperms -a
# chkstat --system /etc/permissions /etc/permissions.local
Ich habe mich für diese Variante entschieden, da sie bez. der Internetgeschwindigkeit schneller ist. Sie scheint auch zum Erfolg geführt zu haben, das System läuft ohne Beschwerden. Für Irritationen sorgten weiterhin bestehende Dateien, z. B. in /usr/bin, mit den Dateirechten 777. Diese stellten sich aber als Links auf andere Dateien heraus ;-) Also nochmals vielen Dank! Viele Grüße Peter -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (4)
-
Christian Boltz
-
David Haller
-
Matthias
-
Peter Geerds