Hallo, Am Tue, 08 Feb 2005, Christian Boltz schrieb:
Hallo David, hallo Sapheriel, hallo Leute,
(David, das ist einer der seltenen Fälle, in denen ich Dir widerspreche ;-)
Schoen, dass es das auch gibt :) Sowas kommt ja nicht allzu oft vor, selbst, wenn ich mich mal in Gebiete begebe, wo ich wenig Ahnung habe. BTW an alle: ich weiss nicht, wie ich auf die Leser hier wirke, ich kann da nur aus den Mails ableiten, aber wenn ich mal daneben liege, dann will ich korrigiert werden bzw. einen Widerspruch bekommen.
Am Dienstag, 8. Februar 2005 20:31 schrieb David Haller:
Am Tue, 08 Feb 2005, Sapheriel schrieb:
ich wollte einige dateien zwischen zwei accounts verschieben und hab mich beim verzeichniswechsel vertippt. dann habe ich
chown -R work:users *
in / ausgeführt (ja, ganz genau dort). [...] kann mir einer sagen wie ich am besten vorgehe um alle berechtigungen wieder richtig zu setzen?
/sbin/conf.d/SuSEconfig.permissions
setzt die in /etc/permissions* festgelegten Rechte.
Dann noch ein 'rpm --setugids -a'
Falsche Reihenfolge ;-) Zuerst rpm --setugids und dann SuSEconfig.permissions, da SuSEconfig die Permissions evtl _absichtlich_ anders setzt als im RPM angegeben.
Stimmt.
und fuer den Rest ist 'rpm --verify' dein Freund.
Ich würde eher ein find empfehlen, das nach Dateien sucht, die noch work:users gehören.
Ack. Also wohl rpm --setugids, dann rpm --verify, dann SuSEconfig.permissions und dann das find? Oder das --verify doch erst nach dem SuSEconfig? Hm. Wie waere mit sowas wie einem (ungetestet dahingetipperten): find / -user work -group users -print0 \ | xargs -0 rpm -qf 2>/dev/null | sort -u | while read pkg; do rpm --verify "$pkg" ## oder gleich 'rpm --setugids "$pkg"' done Ja, das wird dauern. Bevor 'sort' loslegen kann muss 'find' ja alle Dateien abgrasen und per xargs fuer alle n Dateien ein 'rpm -qf' mit den n Dateien als Parameter aufrufen, und erst wenn alle Dateien durch sind kann das 'sort -u' loslegen. Und das ist schon die "optimierte" Version, die nicht 'rpm -qf' fuer jede Datei aufruft oder so ;) Und das 'rpm --verify' braucht natuerlich auch jeweis seine Zeit... Das Ergebnis des "sort -u" bzw. "rpm --verify" kann man natuerlich in eine Datei umleiten und durchgehen, bevor man Rechte aendert bzw. von 'rpm --setugids' aendern laesst. 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 ;)) BTW: ein 'rpm -qplv <paketdatei>' auf das Paket auf CD zeigt einem die Rechte auch an ( vgl. 'rpm --verify'). Und nochwas: obiges ist wieder mal ein Beispiel, wie maechtig (wenn auch manchmal scheinbar(!) langsam) die "klassische" Unix-Kommandozeile sein kann :))) Man kann aber ja derweil was anderes machen, z.B. in einem anderen xterm/auf einer anderen Konsole mail oder news lesen *bg* Aber Achtung: kann sein, dass ich da "GNUisms" wie das 'find -print0 | xargs -0' und evtl. das '-u' beim 'sort' eingebaut habe (bei Letzterem waere stattdessen 'sort | uniq' zu verwenden).
Hintergrund: Es können durchaus Dateien vorhanden sein, die nicht per RPM installiert wurden (z. B. Dateien in /etc/sysconfig) - die werden bei sämtlichen genannten RPM-Befehlen schlicht übersehen und stellen durch die Beschreibbarkeit durch "work" ein Sicherheitsrisiko dar.
ACK!
--
"Der Pinguin ist ein gutes Logo für Linux, denn was nicht fliegt, stürzt auch nicht ab." Francis Kuhlen (IBM-Vice President Sales)
Snarfed! Aber was macht die Leerzeile da? -dnh [1] auf meiner 9.1 Testinstallation hab ich keine Server installiert, daher nur geraten, meine eigene 6.2 ist da wohl ein bisserl zu alt ;) [2] da faellt mir auf, ich sollte doch das INSTALL (sofern nicht ein generisches autoconf/-make INSTALL) mit in die RPMs packen ;) -- "Der Pinguin ist ein gutes Logo für Linux, denn was nicht fliegt, stürzt auch nicht ab." -- Francis Kuhlen (IBM-Vice President Sales)