Artikel mit Tag bugVerwandte Tags apparmor berlin fun linux linuxtag mail openSUSE php postfixadmin script security server foto landjugend neustadt schneewittchen browser debian blog jquery keyboard novell spam apache avm mysql patch2mail plesk postfix treiber gpg keysigning mediawiki login opensuse phpmyadmin regex typo3Mittwoch, 1. Februar 2017AppArmor - or: Working for the enemy?Some weeks ago, someone asked on the opensuse-wiki mailinglist if it's acceptable to move documentation (in this case about Icecream) from the openSUSE wiki to the upstream repo on github. One of the arguments was:
While this sounds like a valid argument and for sure shows good intentions, I wrote a longish reply:
Since I talked a lot about AppArmor in the above text, let's see what's new there. You might have noticed that there were some AppArmor releases recently:
The rewrite of the file rule handling resulted in a nice series of 42 patches which replace 1600 lines of code using a deeply nested array with 1200 lines with the more readable and easier maintainable FileRule and FileRuleset classes (a total of 530 lines) and functions using these classes. Even with 400 lines less code, I added some small features (for example, rules with leading permissions like "r /etc/fstab," are now supported) and fixed some bugs along the way. The old code to handle file rules had very few unittests, which made this rewrite (and especially avoiding breakage and regressions) quite challenging. On the positive side, my patch series added full test coverage for the FileRule and FileRuleset classes, and also added unittests for most of the functions using FileRule and FileRuleset. (Unfortunately full test coverage isn't always easy, especially for the interactive parts of aa-logprof.) Those unittests add about 1400 lines of code, but as long as such additions happen in the tests directory, I'm more than happy about them ;-) Oh, and the final challenge hit the other AppArmor developers. AppArmor has the policy that all patches have to be reviewed, and reviewing the whole patch series (which summed up to +2600 -1628 lines) took some time ;-)
That all said, let's not forget to answer where the documentation should live:
BTW: The question "Am I working for the enemy?" was mostly meant as a rhetoric question - but if you want to answer nevertheless, please add a comment ;-) Dienstag, 29. Mai 20121001 Bugs - oder: die goldenen Regeln für schlechte ProgrammierungMit meinem "1001 Bugs"-Vortrag habe ich die openSUSE Conference überlebt, obwohl mancher Entwickler vermutlich nicht ganz glücklich war, dass ich einen seiner peinlichen Bugs entdeckt hatte ;-) Daher hielt ich diesen Vortrag in leicht überarbeiteter Form und in deutsch auch auf dem LinuxTag. Den ca. 80-90 Zuhörern hat es scheinbar gefallen - neben einigen Lachern zwischendurch bekam die "spezielle Regel für openSUSE" sogar Szenenapplaus :-) Wer den Vortrag auf dem LinuxTag verpasst hat oder sich die Folien (incl. Notitzen) nochmal ansehen will - bitte schön: 1001 Bugs - oder: die goldenen Regeln für schlechte Programmierung als PDF Dienstag, 27. September 20111001 bugs - or: the golden rules of bad programmingIf you missed my talk at the openSUSE conference or want to see the slides (including notes) again - here we are: 1001 bugs - or: the golden rules of bad programming as PDF Sonntag, 28. August 20111001 bugs1001 bugs - das ist eins der Ergebnisse meiner Mitarbeit bei (open)SUSE: Ich habe vorhin meinen 1001. Bugreport eingereicht. Außerdem werde ich unter dem Motto "1001 bugs - or: the golden rules of bad programming" einen Vortrag auf der openSUSE conference halten. Die genaue Beschreibung meines Vortrags steht unter dem englischen Text. Ich habe schon eine ganze Reihe von Ideen für den Vortrag, bin aber für Vorschläge in den Kommentaren offen. Wer sich für meine Bugzilla-Statistik interessiert, findet unten den Screenshot. Man sieht deutlich, dass ich bei SUSE Linux 9.2 mit dem Betatesten angefangen habe und seitdem die Entwickler mit Bugreports zuschütte ;-) 1001 bugs - that's one of the results of my work on (open)SUSE: I just filed my 1001. bugreport. Besides that, I'll give a talk "1001 bugs - or: the golden rules of bad programming" at the openSUSE conference. I already have lots of ideas for my talk, however I'm open for proposals - just add a comment here. If you are interested in my bugzilla statistics, have a look at the screenshot below. You can clearly see that I started beta-testing with SUSE Linux 9.2 and since then overwhelm the developers with bugreports ;-) But first I'll give you the the detailed description of my talk: 1001 bugs - or: the golden rules of bad programming
Bugzilla report for "reporter contains @cboltz.de"
(the reports for 9.x and some other products are non-public, which means you'll probably get a lower number) Sonntag, 17. April 2011Spezieller Alias - und ein neues Zuhause für apparmor.vimErstmal ein kleines Schnipsel aus meiner Konsole: Let's start with a sniplet from my console: cb@geeko:~/postfixadmin> svn help | head -n1 usage: svn <subcommand> [options] [args] cb@geeko:~/postfixadmin> cd /home/cb/apparmor cb@geeko:~/apparmor> svn help | head -n1 Bazaar 2.0.5 -- a free distributed version-control tool
Mein SVN ist nicht verrückt geworden ;-) - ich habe nur ein kleines Script vorgelagert, das man am Besten als Verzeichnis-abhängigen Alias bezeichnen könnte. Wenn ich im Verzeichnis ~/apparmor bin, wird aus "svn" wie durch Geisterhand ein "bzr"-Aufruf. Das Script ~/bin/svn ist nicht wirklich kompliziert: My SVN didn't go crazy ;-) - I just prepended a small script you could best describe as directory-dependent alias. When I'm working in ~/apparmor, it magically replaces "svn" with a "bzr" call. The script ~/bin/svn is not really complicated: #!/bin/bash command=/usr/bin/svn # use the full path. Just "svn" will result in an endless loop! pwd | grep -q ^/home/cb/apparmor && command=/usr/bin/bzr exec $command "$@" Warum ich das Ganze brauche? Ich habe seit kurzem Commit-Rechte bei AppArmor, damit apparmor.vim endlich ein offizielles Zuhause hat. Außerdem habe ich schon ein paar Profil-Updates commited. (Keine Angst: vom C-Code werde ich mich fernhalten ;-)
AppArmor verwendet Bazaar für die Versionskontrolle, und das ist glücklicherweise Parameter-kompatibel zu SVN (zumindest bei dem, was ich brauche) und erspart mir so die Umgewöhnung an noch eine Versionsverwaltung. Nebenbei: Für Bazaar musste ich mir einen Launchpad-Zugang einrichten, und habe natürlich[tm] auch gleich einen Bug in Launchpad gefunden ;-) Why do I need this? Since a short while, I have commit access for AppArmor. This finally gives apparmor.vim an official home. I also commited some profile updates. (Don't worry - I'll stay away from the C code ;-) AppArmor uses Bazaar as version control system, which is luckily parameter compatible to SVN (at least for the commands I use). This means I don't have to keep another version control system in mind. BTW: For Bazaar I had to create a Launchpad account, and of course[tm] found a Launchpad bug instantly ;-) Freitag, 1. Januar 2010Prosit Neujahr!Prosit Neujahr und alles Gute für 2010! Dieser Artikel enthält einiges, das ich schon 2009 bloggen wollte, und außerdem eine kleine Neujahrsüberraschung von SpamAssassin ;-) Happy New Year! This article contains some things I wanted to blog about in 2009 already, and a little new year surprise from SpamAssassin ;-)
Donnerstag, 2. Juli 2009th_mailformplus und AttachmentsAuf der Typo3-Website eines Kunden verwende ich th_mailformplus für ein Webformular mit Dateiupload. Funktioniert auch soweit, allerdings wurde die hochgeladene Datei (trotz entsprechender Konfiguration des Formulars) nicht an die Maill angehängt. Seit vorhin kenne ich den Grund: Der Mail-Funktion wird nur der Dateiname ohne Pfad angegeben, und dadurch findet die Funktion natürlich die Datei nicht und kann sie auch nicht anhängen :-( Außerdem endet der Dateiname noch mit \n. Ich habe eben einen kleinen Patch in den Typo3-Bugtracker hochgeladen, der den Pfad beim Dateinamen einfügt und das \n per trim() entsorgt. Und schon werden Mails mit Anhang verschickt :-) I use th_mailformplus for a mailform with file upload on a customer's typo3 website. Works mostly, but the uploaded file was not attached to the mail (even if the mailform config was correct). Since a short while ago I know the reason: The mail function is called with the filename without path, and therefore obviously can't find the file :-( Besides that, the filename ends with \n. I just uploaded a small patch to the Typo3 bugtracker which inserts the path into the filename and removes the \n using trim(). Now mailformplus sends mails with attachments :-) Freitag, 18. April 2008Paste SearchSchöner Titel zum Mitraten, oder? ;-) Paste Search ist ein unspektakuläres PHP-Script, das aber die Usability von Konqueror (und anderen Webbrowsen) enorm verbessert. Konkret geht es um das Verhalten beim "Mittelklicken" des Browserfensters, das normalerweise eine Google-Suche auslöst und nach dem Begriff in der Zwischenablage sucht. Dieses Standardverhalten ist schonmal gut, aber oft habe ich andere Ziele - beispielsweise ein Bugreport auf bugzilla.novell.com oder im SourceForge Tracker. Die Lösung ist relativ einfach: Das folgende PHP-Script wird auf einen Webserver hochgeladen und als Standard-Suchmaschine im Browser eingetragen. Ab diesem Zeitpunkt wird bei Zahlen automatisch im Bugtracker gesucht (die Unterscheidung erfolgt anhand der Nummer - alles bis 500000 geht an bugzilla.novell.com, der Rest an SourceForge), bei Text mit Google. Nice title to guess on, right? ;-) Paste Search is an unspectacular PHP script that greatly enhances the usability of Konqueror (and other web browsers). To be exact, it is about the behaviour when "middle-clicking" the browser window which usually starts a google search for the content of the clipboard. This default behaviour is not bad, but sometimes I have other targets - for example bugreports on bugzilla.novell.com or in the SourceForge trackers. The solution is quite simple: Upload the following PHP script to a webserver and configure your browser to use it as default search engine. If you paste numbers to your browser now, it will go to the bugtracker automatically (the selection depends on the bug number - up to 500000 goes to bugzilla.novell.com, everything above to the SourceForge tracker). If you paste text, you will be redirected to Google. <?php # cbPasteSearch.php Natürlich kann man sich das Script nach Bedarf durch zusätzliche if-Abfragen anpassen. Vorschläge dazu nehme ich in den Kommentaren gern entgegen ;-) Of course you can customize the script as needed by adding additional if statements. Please add your ideas to the comment section ;-) Dienstag, 19. Juni 20071&1 gibt Tipps zur PasswortsicherheitMuss ich dazu wirklich etwas sagen? Na gut, für den Fall, dass jemand das Problem nicht sieht: Ein Passwort, das im Klartext angezeigt wird, kann niemals sicher sein. Dass direkt daneben Tipps für ein sicheres Passwort gegeben werden, würde ich als ironisch bis peinlich bezeichnen. Beim Runterscrollen kommen übrigens noch bessere Tipps:
Hinter mir sitzen ein paar Leute, also: Waaaaa-aaaaas, alle 10 Sekunden Passwort ändern?!
Dann brauche ich ganz, ganz dringend Tipp-Ex auf dem Bildschirm... Lustigerweise ist das (im Vergleich zum Vertragspasswort) eher unwichtige Mail-Passwort besser geschützt - das kann man sich nicht anzeigen lassen, sondern nur ändern. Im Gegenzug wird das FTP-Passwort im Klartext angezeigt. Klar, das ist ja auch wertvoller als Mailpasswörter, warum sollte man das verstecken? *grummel* Bevor sich jemand wundert, warum ich mich plötzlich bei 1&1 rumtreibe: Abschlussarbeiten einer Kündigung, die Domains habe ich gerade zu mir umgezogen :-) Montag, 11. Dezember 2006Spaß mit packages.debian.orgEingabedaten validieren sollte die erste Lektion für alle sein, die sich mit ihren Scripten ins "WeltWeite Warten" (www) trauen. Leider gibt es immer wieder traurige Gegenbeispiele. fefe hat jetzt entdeckt, dass packages.debian.org die URL-Parameter ungeprüft übernimmt, inclusive der auf der Seite angezeigten MD5SUM des Pakets. Sowas ist ziemlich blauäugig ;-) Vor ein paar Stunden konnte man noch beliebigen HTML-Code einschleußen (siehe Screenshot - ja, soviel Spaß muss sein), inzwischen wird "immerhin" die MD5SUM auf Länge und erlaubte Zeichen überprüft. Eine falsche MD5SUM ausgeben geht immer noch, solange die Länge stimmt. Eine falsche MD5sum in Verbindung mit einem manipulierten FTP-Server heißt de facto, dass jemand ein gefaktes Paket mit beliebig bösem Inhalt anbieten kann und das nichtmal auffällt. Auf debian-www hält man sowas aber für "low risk". Es geht ja auch nur um potenziell gefakte Pakete mit bösen suid-root Programmen... Was fefe übersehen hat: auch die anderen Parameter sind beliebig manipulierbar. Ich bin mal gespannt, wie lange Debian den Internet Explorer zum Download anbietet *eg* Wie man sowas manipulationssicher programmiert? Eigentlich recht einfach - man packt die Nutzdaten (Paketnamen, MD5SUM usw.) in eine Datenbank und übergibt dem Script nur die ID als Parameter. UPDATE: Inzwischen wurde die RegEx etwas verschärft und erlaubt nur noch [0-9a-f]. Ich habe die obigen Links etwas angepasst, damit sie weiterhin funktionieren. Falsche MD5SUMs kann man immer noch einschleußen... Donnerstag, 16. November 2006openSUSE beta2 und der beste "translation joke" foreverSo, seit ein paar Tagen läuft openSUSE 10.2 beta2 auf meinem Laptop. Wie es bisher aussieht, gibt es wenig Grund zum Klagen. Die schlimmsten Bugs, die ich entdeckt habe, sind zwei Probleme im Paketmanager. Der eine sorgt für einen Hänger, wenn eine (Online-)Installationsquelle nicht verfügbar ist (#221071), der andere für einen riesigen Stapel Fehlermeldungen, wenn eine Installationsquelle eine Apache-Fehlermeldung statt der Metadaten liefert (#218552). Als Workaround hilft es, nur funktionierende Installationsquellen zu verwenden ;-) Falls sich jemand Sorgen um den Status des Paketmanagers macht: diesmal funktioniert er wirklich ;-) out of the box und muss nicht erst wie bei 10.1 zurechtgepatcht werden. Ach ja, und man kann zmd und zen-updater durch opensuse-watcher ersetzen, der direkt auf libzypp aufsetzt. Bleiben nur noch die kaputten Berechtigungen bei permissions.secure (#216485). Der einzige Bug, der in der täglichen Arbeit nervt, ist ein hyperaktiver artsd, der den Prozessor unnötig beschäftigt (#178930) - naja, dafür gibt es killall -9... Dazu kommen die üblichen Kleinigkeiten - ein paar verwirrende Schaltflächen (#218677), eine komische Übersetzung (#220668) oder auch ein fehlendes Leerzeichen (#220875). Ach ja, das Syntax-Highlighting for AppArmor-Profile in vi funktioniert dank meiner Mithilfe wieder (#190084). Am schönsten fand ich aber die Tipps beim KDE-Start (Screenshot rechts oben). Dort wird u. a. erklärt, dass KDE in viele Sprachen übersetzt ist - und genau dieser Text ist nicht übersetzt *g* (#221177 - hmmm, sollte ich den wegen Peinlichkeit zum Blocker machen?) Samstag, 28. Oktober 2006404 mal anders"404 not found" hat wohl jeder schon mal gesehen. Zur Abwechslung biete ich "404 bugs found" ;-) Ja, von SUSE Linux 9.2 beta bis heute hat sich einiges angesammelt. Darunter waren einige Dauerbrenner, z. B. der Dualhead-Betrieb auf meinem Laptop (#61858), der dem Blinker-Prinzip folgt (pro SUSE-Release: geht, geht nicht, geht, ...) und PHP open_basedir, das ich gern pro vHost setzen würde - dummerweise werden aber die Einstellungen der vHosts bunt durcheinandergemischt (#136651). Der letzte "Fix" vor einiger Zeit war leider wenig erfolgreich. Ich bin ja mal gespannt, ob der jetzt angekündigte Patch das Problem endlich behebt ;-) Andere Bugs befassten sich mit Ausnahmesituationen (z. B. dass /var/lib ein Symlink ist ;-) - #181606) und wieder andere "nur" mit ungewohnten Tastenfolgen für Datei - Öffnen (#215576). Auch der Spaß kam nicht zu kurz, wie beispielsweise einige Kommentare in Bug #141107 oder Bug #180796 zeigen. Dazu kamen diverse Verbesserungsvorschläge, von denen manche sofort und manche nach deutlichem Nachhaken (#206414, #143648) umgesetzt wurden. Beim Betatest der 10.1 hatten insbesondere die Programmierer von YaST und der Paketverwaltung ihre Freude - in diesen Bereich fielen 64 meiner 152 Bugreports zur 10.1 (was mich nebenbei zum zweitaktivsten Bugreporter nach Andreas Jaeger (182 Bugreports) gemacht hat ;-) Nicht nur die Programmierer, auch das Doku-Team hatte seinen Spaß mit mir (oder umgehehrt?), als ich im berühmt-berüchtigten Bug #65000 (#50000 zu Zeiten von bugs.suse.de; ich habe zwar trotz der runden Zahl nichts gewonnen, aber "lots of people here were annoyed by it - they wanted to file this magical number themselves ;))") diverse Fehler im Handbuch ("handbug?") der 9.2 berichtete. Jede Büroklammer im Handbuch markierte einen Fehler im Kapitel "Shell", das Foto ging vorab ans Doku-Team. Die erste Reaktion seitens Jana Jaeger auf meinen Bugreport war dann übrigens "@bugreporter: please do not ever touch a paperclip again ... :)" Inzwischen helfe ich gelegentlich auch selbst bei der Fehlerbehebung, beispielsweise in pin und in apparmor.vim (vim Syntax-Highlighting für AppArmor-Profile). Nur einen Bug konnte ich bis heute nicht beheben: der Tag hat leider nur 24 Stunden. Egal, nehme ich eben die Nacht dazu ;-) Ach so: Die älteren Bugreports für SUSE <= 9.3 sind nur für alteingesessene Betatester zugänglich, daher sind nur rund 290 Bugs öffentlich sichtbar. Vermutlich erhöt sich die Zahl aber demnächst - ich will morgen openSUSE 10.2 beta1 installieren...
(Seite 1 von 1, insgesamt 12 Einträge)
|
ArchiveKategorienBlog abonnierenImpressum |
Kommentare