Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiattibut-Cecker?
Hat mal jemand eine Kommandozeile parat mit der Dateien gemeldet werden, bei denen der Eigentümer weniger Rechte hat als andere, Verzeichnisse die mehr als 1000 Einträge haben, und Dateien von root mit gestztem SUID-Bit, die in user-Verzeichnissen sind? :confused:
Hmm, "ls -l | grep Suchbegriff", z.B. "ls -l | grep drwxr" - mußt du dir halt noch anpassen.
Das wär mal die simple Lösung; vielleicht hat ja jemand etwas komfortableres?
http://www.linuxinfoserver.de/forums/showthread.php?s=&threadid=28872&highlight=SUID+AND+find
:D
T;o)Mes
Aha, mit
find / -user root -perm +7000 -print
habe ich schon ein Drittel, aber was ist mit den anderen beiden, also Verzeichnisse mit über 1000 Dateien (ich habe eines mit über 45.000) und Dateien bei denen der User weniger Rechte als andere hat? :confused:
Weil ich per DSL-Flat und DNS2GO fast immer ohline bin reicht mir nämlich Tripwire nicht aus, aber ich will auch nicht allzuviel Zeit für Sicherheits-Checks aufwenden.
suid/sgid-bit:
find / -type f \( -perm -04000 -o -perm -02000 \) -ls > suid_sgid-files
find / -type f \( -perm -2 -o -perm -20 \) -ls > ww-files
find / -type d \( -perm -2 -o -perm -20 \) -ls > ww-dirs
find / \( -name "..." -o -name "..*" -o -name ".rhost" \) -ls > suspect-files
MAXCOUNT=1000
find . -type d > /tmp/files-03645
for e in `cat /tmp/files-03645`; do
if [ $((`ls $e | wc -l`)) -ge $(($MAXCOUNT)) ]; then
ls -ld $e 2> /dev/null
fi
done¨
rm /tmp/files-03645
Das mit dem Eigentümer muss ich mir erst noch überlegen. Wenn du sie sgid/suid auf root beschränken willst, verwende "-uid 0 als weitere Option für find. Ich würde aber alle auflisten.
Gruss, Andy
Aha, danke, aber kannst Du dazu nicht noch ein paar Worte schreiben wofür die oberen Sachen sind? :confused:
Ich meine es muss geprüft werden ober ein r-, w- oder x-Bit beim user nicht gesetzt ist das aber, aber bei group u. others gesetzt ist und das sieht mir nicht danacht aus.
Deine Forderung nach dem Suchen von Dateien, bei denen der user weniger Rechte hat als die Gruppe/alle habe ich noch nicht erfüllt. Es ist zwar möglich mit find das zu tun, allerdings würde das ein Mehrzeiler geben, da du alle möglichen Kombinationen die du suchen willst explizit angeben musst: Haupsächlich Fleissarbeit.
Zu der Funktion meines Posts oben:
find kann nach mehreren Attributen (Grösse, Name, Rechte, Datum, usw.) suchen. Normalerweise verknüpft es die einzelnen Suchelemente mit logisch UND. Mit der Schreibweise: \( a -o b \) kannst du die Bedinung a ODER b verwenden. Der Parameter -perm sucht entweder genau nach einem Rechtemuster (0755), nach mindestens vorhandenen Rechten (-0066) oder nach einem der angegebenen Rechten (+0011). Weitere Info: man find
Die erste Zeile sucht nach Files mit gesetztem suid oder sgid-Bit (potentielles Risiko).
Die zweite Zeile sucht nach Files, in die jeder schreiben kann (ebenfalls ein potentielles Risiko).
Die dritte Zeile such entsprechend nach Verzeichnissen mit Schreibrechten für alle.
Die vierte Zeile sucht nach einigen Speziellen Files, wie sie mögliche Angreifer anlegen um ihre Daten zu verstecken.
Das Script weiter unten schlussendlich sucht nach Verzeichnissen mit mehr als MAXCOUNT Einträgen.
Gruss, Andy
Danke :)
Dann werde ich mal eine Liste der betreffenden Bitmasken erstellen und ein Skript damit schreiben.
MAXCOUNT=1000
find . -type d > /tmp/files-03645
for e in `cat /tmp/files-03645`; do
if [ $((`ls $e | wc -l`)) -ge $(($MAXCOUNT)) ]; then
ls -ld $e 2> /dev/null
fi
done¨
rm /tmp/files-03645
hi,
was bitte soll das bringen? so wie ich das verstehe suchst du nach Verzeichnissen die mehr als 1000 Files haben?
cu
adme
Original geschrieben von adme
hi,
was bitte soll das bringen? so wie ich das verstehe suchst du nach Verzeichnissen die mehr als 1000 Files haben?
cu
adme
Der Fachman Tanenbaum (Buch Moderne Betriebssysteme) meint, dass die verdächtig sind.
Vermutlich ist das bei root-Kits so. Jedenfalls sollte es selten vorkommen.
Ich kapier den Sinn auch nicht... 1000 Files gibt es schnell einmal auf einem grösseren System. Ok, es könnte ja sein, dass jemand illegales auf den Server schaufelt, aber ob er dass alles in ein Verzeichnis schaufelt?
Gruss, Andy
Wenn es Dich interessiert kannst Du den Autor ja mal anmailen.
Jedenfalls sollte es in einem üblichen Linux-Rechner nur wenige Verzeichnisse mit sehr vielen Dateien geben und die melden zu lassen ist ja kein großer Aufwand, auch weil sich das nur selten ändern sollte u. leicht überprüfbar ist (z. B. meine 50.000 Wertpapier-Kursdateien in einem User-Verzeichnis).
Ähm, nun habe ich das Problem, dass Dateien/Verzeichnisse mit Leerzeichen im Namen die Suche mit MAXCOUNT verhindern.
Wie werden auch Leerzeichen bei der Suche richtig berücksichtigt? :confused:
einfach doublequoten (" ")
cu
adme
Ja, aber wie mache ich das beim pipen in die temporäre Datei?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.