Oneliner

Aus dem IServ-Wiki
Zur Navigation springen Zur Suche springen

Benutzer/Gruppen

Die Gruppen mit den meisten Mitgliedern auflisten
befehl
cat /etc/group | perl -ne 'my @p = split(/:/, $_); print scalar (split(/,/, $p[3])) . " " . $p[0] . "\n";' | sort -n | tail
Benutzer auflisten, deren Account länger als 20 Zeichen ist (Grenze von Windows 7)
root
psql -Atc 'select length(act) as length, act from users where length(act) > 20 order by length'

System

Aktuelleren Kernel (> 2.6.30) auf Lenny-Servern installieren
root
aptitude install -t lenny-backports linux-image-2.6-686-bigmem
initramfs entpacken
befehl
cd
mkdir initrd
cd initrd
zcat /boot/my-initramfs.cpio.gz | (while true; do cpio -i -d -H newc --no-absolute-filenames || exit; done)
initramfs packen
befehl
cd initrd
find | cpio -H newc -o | bzip2 -c > /boot/my-initramfs.cpio.bz2
Pakete finden, die in ihrer aktuellen Version nicht herunterladbar sind[1]
befehl
aptitude search '?narrow(?not(?archive("^[^now]{3}.*$")),?version(CURRENT))'

Spamfilter

SpamAssassin-Statistiken ausgeben
root
HOME=/var/lib/spamassassin sudo -u debian-spamd sa-learn --dump magic
Mail vom Spamfilter untersuchen lassen
root
cat mail.txt | spamassassin-test -D

Netzwerk/Internet

Downloads auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
befehl
tail -f /var/log/apache2/access.log | awk '{if ($10 > 1000000) { print $10 "\t" $7}}'
Mails auflisten lassen, die die DSL-Bandbreite des Servers verstopfen
root
grep '<=' /var/log/exim4/mainlog | perl -ne '/ S=(\d+)/; if ($1 > 2000000) { print $_ }' | awk '{print $3}' | while read i; do exigrep $i /var/log/exim4/mainlog; done
squidGuard testen, ob eine bestimmte URL von einem bestimmten Rechner aus erreichbar ist
befehl
echo "http://rotten.com 192.168.0.51/- - GET" | squidGuard

Liefert folgende Ausgabe, wenn die Seite gesperrt ist:

datei
302:http://mein-iserv.de/idesk/inet/block.php?grp=porn&url=http://rotten.com 192.168.0.51/- - GET

Liefert eine leere Zeile, wenn die Seite abgerufen werden darf.

Fortlaufende IP-Ranges in die Rechnerverwaltung eintragen und freischalten
root
for i in $(seq -f '%02g' 1 39); do psql -tc "INSERT INTO hosts (name, room, ip, display, route) VALUES ('VerwaltungWLAN-$i', 'Verwaltung', '192.168.10.160'::INET + $i, false, true);"; done
/usr/lib/iserv/newhosts
Port 25 überwachen, um Spambots zu finden (Interface und IP vom IServ ggf. anpassen)
root
tshark -pl -t ad -i eth0 "port 25 and not host 10.0.0.1" -R smtp | tee smtp.log
DNSChanger-infizierte Rechner im Netzwerk finden (Interface ggf. anpassen)
root
tshark -pl -t ad -i eth0 "dst net 85.255.112.0/20 or dst net 67.210.0.0/20 or dst net 93.188.160.0/21 or dst net 77.67.83.0/24 or dst net 213.109.64.0/20 or dst net 64.28.176.0/20" | tee dnschanger.log
/etc/udev/rules.d/70-persistent-net.rules neu generieren
root
udevadm trigger --action=add --subsystem-match=net --verbose
Accounts auflisten, die in den letzten 24 Stunden unverschlüsselte Protokolle (IMAP, SMTP, FTP, POP3) verwendet haben[2]
Datenschutz: Dies sollte nur in Absprache mit Schulleitung und Personalrat von einem Administrator angewendet werden!
root
psql -c "SELECT DISTINCT(act) FROM session_log WHERE encrypted = false AND service != 'smbd' AND login > now() - '24 hours'::interval"

Datenbank

In psql die Tabellen auflisten, die den meisten Speicher belegen
datei
SELECT nspname || '.' || relname AS "relation",
    pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
  FROM pg_class C
  LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
  WHERE nspname NOT IN ('pg_catalog', 'information_schema')
    AND C.relkind <> 'i'
    AND nspname !~ '^pg_toast'
  ORDER BY pg_total_relation_size(C.oid) DESC
  LIMIT 20;
In psql Rechner auflisten, deren Namen sich nur durch Groß- und Kleinschreibung unterscheiden
datei
SELECT name,mac,ip FROM hosts WHERE LOWER(name) IN
  (SELECT LOWER(name) FROM HOSTS GROUP BY LOWER(name) HAVING COUNT(*) > 1);
IP-Bereich migrieren (IPs entsprechend anpassen; anschließend /usr/lib/iserv/newhosts ausführen)
datei
UPDATE hosts SET ip = ip & '0.0.0.255' | '10.0.3.0' WHERE ip << '192.168.100.0/24' AND ip & '0.0.0.255' | '10.0.3.0' NOT IN (SELECT ip FROM hosts);

Windows

RDP anschalten
befehl
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Windows 7

System-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
wevtutil /rd:true /c:10 /f:text qe system
Anwendung-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
wevtutil /rd:true /c:10 /f:text qe application

Windows XP

System-Ereignisprotokoll in der Konsole ausgeben (Alle Ereignisse, ohne Details)
befehl
cscript %systemroot%\system32\eventquery.vbs /l system
System-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
cscript %systemroot%\system32\eventquery.vbs /l system /r 10 /v
Anwendung-Ereignisprotokoll in der Konsole ausgeben (Nur die 10 neuesten Ereignisse, mit Details)
befehl
cscript %systemroot%\system32\eventquery.vbs /l application /r 10 /v

Manchmal auch:

befehl
cscript %systemroot%\system32\eventquery.vbs /l anwendung /r 10 /v



  1. Ja, der Hack ist so dreckig, wie er aussieht. Quelle: [1]
  2. smbd (Icon Wikipedia De.gifSamba) ist bewusst ausgenommen, da die Übertragung dort konzeptbedingt nur unverschlüsselt erfolgen kann.