Monthly Archives: December 2017

OpenBSD, python og wxallowed

(Mest som notat for meg selv, slik at jeg har mulighet til å finne tilbake til hvilke endringer jeg har gjort)

Nyere versjoner av OpenBSD (muligens introdusert i 6.1?) håndhever W^X som standard for alle programmer. Dette er en sikkerhetsfunksjon som gjør at programmer kan skrive eller kjøre deler av minnet, men ikke gjøre begge deler på samme minneområdet. Forsåvidt nyttig siden det hindrer at programmet kan (bli lurt til å) skrive nye instruksjoner som så blir kjørt.

Som sagt, en god ide, men etter å ha oppgradert VMen min til OpenBSD 6.1, støtte jeg på et bittelite problem i at python nektet å kjøre. Av det jeg kunne se av feilmeldinger var det fordi python bryter mot W^X på et vis og dermed ble nektet å kjøre. Siden jeg trenger å kunne kjøre python på dette systemet, var den en litt hard blokker. Søkte litt rundt omkring og fant flere som hadde støtt på tilsvarende problem. Som en workaround er det mulig å legge til `wxallowed` for filsystemet der python kjører fra i `/etc/fstab`. (Se stackoverflow for litt mer info)

Så jeg la til `wxallowed` til `/usr/local`, startet VMen på nytt, og da kjørte python uten problemer. Det åpenbare problemet er at jeg har en nyttig sikkerhetsfunksjon som jeg har slått av for et sett binærfiler, da jeg fant noen bedre fiks. 🙁 For min del er det ikke noe stort problem da jeg hovedsaklig kjører OpenBSD for å sjekke at Widelands bygger på flere platformer, selv om jeg gjerne skulle gjort det “ut-av-boksen” uten slike endringer. Det er neppe en endring jeg ville gjort i produksjon uten å grave dypere.