- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Broken_umask_handling_with_sshfs.html">Broken umask handling with sshfs</a></div>
- <div class="date">2010-08-26 13:30</div>
- <div class="body">
-<p>My file system sematics program
-<a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">presented
-a few days ago</a> is very useful to verify that a file system can
-work as a unix home directory,and today I had to extend it a bit. I'm
-looking into alternatives for home directory access here at the
-University of Oslo, and one of the options is sshfs. My friend
-Finn-Arne mentioned a while back that they had used sshfs with Debian
-Edu, but stopped because of problems. I asked today what the problems
-where, and he mentioned that sshfs failed to handle umask properly.
-Trying to detect the problem I wrote this addition to my fs testing
-script:</p>
-
-<pre>
-mode_t touch_get_mode(const char *name, mode_t mode) {
- mode_t retval = 0;
- int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, mode);
- if (-1 != fd) {
- unlink(name);
- struct stat statbuf;
- if (-1 != fstat(fd, &statbuf)) {
- retval = statbuf.st_mode & 0x1ff;
- }
- close(fd);
- }
- return retval;
-}
-
-/* Try to detect problem discovered using sshfs */
-int test_umask(void) {
- printf("info: testing umask effect on file creation\n");
-
- mode_t orig_umask = umask(000);
- mode_t newmode;
- if (0666 != (newmode = touch_get_mode("foobar", 0666))) {
- printf(" error: Wrong file mode %o when creating using mode 666 and umask 000\n",
- newmode);
- }
- umask(007);
- if (0660 != (newmode = touch_get_mode("foobar", 0666))) {
- printf(" error: Wrong file mode %o when creating using mode 666 and umask 007\n",
- newmode);
- }
-
- umask (orig_umask);
- return 0;
-}
-
-int main(int argc, char **argv) {
- [...]
- test_umask();
- return 0;
-}
-</pre>
-
-<p>Sure enough. On NFS to a netapp, I get this result:</p>
-
-<pre>
-Testing POSIX/Unix sematics on file system
-info: testing symlink creation
-info: testing subdirectory creation
-info: testing fcntl locking
- Read-locking 1 byte from 1073741824
- Read-locking 510 byte from 1073741826
- Unlocking 1 byte from 1073741824
- Write-locking 1 byte from 1073741824
- Write-locking 510 byte from 1073741826
- Unlocking 2 byte from 1073741824
-info: testing umask effect on file creation
-</pre>
-
-<p>When mounting the same directory using sshfs, I get this
-result:</p>
-
-<pre>
-Testing POSIX/Unix sematics on file system
-info: testing symlink creation
-info: testing subdirectory creation
-info: testing fcntl locking
- Read-locking 1 byte from 1073741824
- Read-locking 510 byte from 1073741826
- Unlocking 1 byte from 1073741824
- Write-locking 1 byte from 1073741824
- Write-locking 510 byte from 1073741826
- Unlocking 2 byte from 1073741824
-info: testing umask effect on file creation
- error: Wrong file mode 644 when creating using mode 666 and umask 000
- error: Wrong file mode 640 when creating using mode 666 and umask 007
-</pre>
-
-<p>So, I can conclude that sshfs is better than smb to a Netapp or a
-Windows server, but not good enough to be used as a home
-directory.</p>
-
-<p>Update 2010-08-26: Reported the issue in
-<a href="http://bugs.debian.org/594498">BTS report #594498</a></p>
-
-<p>Update 2010-08-27: Michael Gebetsroither report that he found the
-script so useful that he created a GIT repository and stored it in
-<a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
-</div>
- <div class="tags">
-
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Elektronisk_stemmegiving_er_ikke_til____stole_p_____heller_ikke_i_Norge.html">Elektronisk stemmegiving er ikke til å stole på - heller ikke i Norge</a></div>
- <div class="date">2010-08-23 19:30</div>
- <div class="body">
-<p>I Norge pågår en prosess for å
-<a href="http://www.e-valg.dep.no/">innføre elektronisk
-stemmegiving</a> ved kommune- og stortingsvalg. Dette skal
-introduseres i 2011. Det er all grunn til å tro at valg i Norge ikke
-vil være til å stole på hvis dette blir gjennomført. Da det hele var
-oppe til høring i 2006 forfattet jeg
-<a href="http://www.nuug.no/dokumenter/valg-horing-2006-09.pdf">en
-høringsuttalelse fra NUUG</a> (og EFN som hengte seg på) som skisserte
-hvilke punkter som må oppfylles for at en skal kunne stole på et valg,
-og elektronisk stemmegiving mangler flere av disse. Elektronisk
-stemmegiving er for alle praktiske formål å putte ens stemme i en sort
-boks under andres kontroll, og satse på at de som har kontroll med
-boksen er til å stole på - uten at en har mulighet til å verifisere
-dette selv. Det er ikke slik en gjennomfører demokratiske valg.</p>
-
-<p>Da problemet er fundamentalt med hvordan elektronisk stemmegiving
-må fungere for at også ikke-krypografer skal kunne delta, har det vært
-mange rapporter om hvordan elektronisk stemmegiving har sviktet i land
-etter land. En
-<a href="http://wiki.nuug.no/uttalelser/2006-elektronisk-stemmegiving">liten
-samling referanser</a> finnes på NUUGs wiki. Den siste er fra India,
-der valgkomisjonen har valgt
-<a href="http://www.freedom-to-tinker.com/blog/jhalderm/electronic-voting-researcher-arrested-over-anonymous-source">å
-pusse politiet på en forsker</a> som har dokumentert svakheter i
-valgsystemet.</p>
-
-<p>Her i Norge har en valgt en annen tilnærming, der en forsøker seg
-med teknobabbel for å få befolkningen til å tro at dette skal bli
-sikkert. Husk, elektronisk stemmegiving underminerer de demokratiske
-valgene i Norge, og bør ikke innføres.</p>
-
-<p>Den offentlige diskusjonen blir litt vanskelig av at media har
-valgt å kalle dette "evalg", som kan sies å både gjelde elektronisk
-opptelling av valget som Norge har gjort siden 60-tallet og som er en
-svært god ide, og elektronisk opptelling som er en svært dårlig ide.
-Diskusjonen gir ikke mening hvis en skal diskutere om en er for eller
-mot "evalg", og jeg forsøker derfor å være klar på at jeg snakker om
-elektronisk stemmegiving og unngå begrepet "evalg".</p>
-</div>
- <div class="tags">
-
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Robot__reis_deg___.html">Robot, reis deg...</a></div>
- <div class="date">2010-08-21 22:10</div>
- <div class="body">
-<p>I dag fikk jeg endelig tittet litt på mine nyinnkjøpte roboter, og
-har brukt noen timer til å google etter interessante referanser og
-aktuell kildekode for bruk på Linux. Det mest lovende så langt er
-<a href="http://ispykee.toyz.org/">ispykee</a>, som har en
-BSD-lisensiert linux-daemon som står som mellomledd mellom roboter på
-lokalnettet og en sentral tjeneste der en iPhone kan koble seg opp for
-å fjernstyre roboten. Linux-daemonen implementerer deler av
-protokollen som roboten forstår. Etter å ha knotet litt med å oppnå
-kontakt med roboten (den oppretter et eget ad-hoc wifi-nett, så jeg
-måtte gå av mitt vanlige nett for å få kontakt), og kommet frem til at
-den lytter på IP-port 9000 og 9001, gikk jeg i gang med å finne ut
-hvordan jeg kunne snakke med roboten vha. disse portene. Robotbiten
-av protokollen er publisert av produsenten med GPL-lisens, slik at det
-er mulig å se hvordan protokollen fungerer. Det finnes en java-klient
-for Android som så ganske snasen ut, men fant ingen kildekode for
-denne. Derimot hadde iphone-løsningen kildekode, så jeg tok
-utgangspunkt i den.</p>
-
-<p>Daemonen ville i utgangspunktet forsøke å kontakte den sentrale
-tjenesten som iphone-programmet kobler seg til. Jeg skrev dette om
-til i stedet å sette opp en nettverkstjeneste på min lokale maskin,
-som jeg kan koble meg opp til med telnet og gi kommandoer til roboten
-(act, forward, right, left, etc). Det involverte i praksis å bytte ut
-socket()/connect() med socket()/bind()/listen()/accept() for å gjøre
-klienten om til en tjener.</p>
-
-<p>Mens jeg har forsøkt å få roboten til å bevege seg har min samboer
-skrudd sammen resten av roboten for å få montert kamera og plastpynten
-(armer, plastfiber for lys). Nå er det hele montert, og roboten er
-klar til bruk. Må få flyttet den over til mitt vanlige trådløsnett
-før det blir praktisk, men de bitene av protokollen er ikke
-implementert i ispykee-daemonen, så der må jeg enten få tak i en mac
-eller en windows-maskin, eller implementere det selv.</p>
-
-<p>Vi var tre som kjøpte slike roboter, og vi har blitt enige om å
-samle notater og referanser på <a
-href="http://wiki.nuug.no/grupper/robot/">NUUGs wiki</a>. Ta en titt
-der hvis du er nysgjerrig.</p>
-</div>
- <div class="tags">
-
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/2_Spykee_roboter_i_hus__n___skal_det_lekes.html">2 Spykee-roboter i hus, nå skal det lekes</a></div>
- <div class="date">2010-08-18 13:30</div>
- <div class="body">
-<p>Jeg kjøpte nettopp to
-<a href="http://www.spykee-robot.com/">Spykee</a>-roboter, for test og
-leking. Kjøpte to da det var så billige, og gir meg mulighet til å
-eksperimentere uten å være veldig redd for å ødelegge alt ved å bytte
-ut firmware og slikt. Oppdaget at lekebutikken på Bryn senter hadde
-en liten stabel på lager som de ikke hadde klart å selge ut etter
-fjorårets juleinnkjøp, og var villig til å selge for en femtedel av
-vanlig pris. Jeg, Ronny og Jarle har skaffet oss restbeholdningen, og
-det blir morsomt å se hva vi får ut av dette.</p>
-
-<p>Roboten har belter styrt av to motorer, kamera, høytaler, mikrofon
-og wifi-tilkobling. Det hele styrt av en GPL-lisensiert databoks som
-jeg mistenker kjører linux. Firmware-kildekoden ble visst publisert i
-mai. Eneste utfordringen er at kontroller-programvaren kun finnes til
-Windows, men det må en kunne jobbe seg rundt når vi har kildekoden til
-firmwaren. :)</p>
-
-<ul>
-<li><a href="http://en.wikipedia.org/wiki/Spykee">Wikipedia-oppføring</a></li>
-<li><a href=http://www.spykeeworld.com/spykee/US/freeSoftware.html">Nedlasting av firmware-kilden</a></li>
-<li><a href="http://wiki.nuug.no/grupper/robot">prosjektwiki hos NUUG</a></li>
-</ul>
-</div>
- <div class="tags">
-
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/robot">robot</a>.
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Rob_Weir__How_to_Crush_Dissent.html">Rob Weir: How to Crush Dissent</a></div>
- <div class="date">2010-08-15 22:20</div>
- <div class="body">
-<p>I found the notes from Rob Weir on
-<a href="http://feedproxy.google.com/~r/robweir/antic-atom/~3/VGb23-kta8c/how-to-crush-dissent.html">how
-to crush dissent</a> matching my own thoughts on the matter quite
-well. Highly recommended for those wondering which road our society
-should go down. In my view we have been heading the wrong way for a
-long time.</p>
-</div>
- <div class="tags">
-
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/No_hardcoded_config_on_Debian_Edu_clients.html">No hardcoded config on Debian Edu clients</a></div>
- <div class="date">2010-08-09 20:15</div>
- <div class="body">
-<p>As reported earlier, the last few days I have looked at how Debian
-Edu clients are configured, and tried to get rid of all hardcoded
-configuration settings on the clients. I believe the work to be
-mostly done, and the clients seem to work just fine with dynamically
-generated configuration.</p>
-
-<p>What is the point, you might ask? The point is to allow a Debian
-Edu desktop to integrate into an existing network infrastructure
-without any manual configuration.</p>
-
-<p>This is what happens when installing a Debian Edu client here at
-the University of Oslo using PXE. With the PXE installation, I am
-asked for language (Norwegian Bokmål), locality (Norway) and keyboard
-layout (no-latin1), Debian Edu profile (Roaming Workstation), if I
-accept to reformat the hard drive (yes), if I want to submit info to
-popcon.debian.org (no) and root password (secret). After answering
-these questions, the installer goes ahead and does its thing, and
-after around 50 minutes it is done. I press enter to finish the
-installation, and the machine reboots into KDE. When the machine is
-ready and kdm asks for login information, I enter my university
-username and password, am told by kdm that a local home directory has
-been created and that I must log in again, and finally log in with the
-same username and password to the KDE 4.4 desktop. At no point during
-this process did it ask for university specific settings, and all the
-required configuration was dynamically detected using information
-fetched via DHCP and DNS. The roaming workstation is now ready for
-use.</p>
-
-<p>How was this done, you might wonder? First of all, here is the
-list of things that need to be configured on the client to get it
-working properly out of the box:</p>
-
-<ul>
-<li>IP address/netmask and DNS server.</li>
-<li>Web proxy URL.</li>
-<li>LDAP server for NSS directory information (user, group, etc).</li>
-<li>Kerberos server for PAM password checking.</li>
-<li>SMB mount point to access the network home directory. (*)</li>
-<li>Central syslog server to send syslog messages to. (*)</li>
-<li>Sitesummary collector URL to submit info to central server. (*)</li>
-</ul>
-
-<p>(Hm, did I forget anything? Let me knew if I did.)</p>
-
-<p>The points marked (*) are not required to be able to use the
-machine, but needed to provide central storage and allowing system
-administrators to track their machines. Since yesterday, everything
-but the sitesummary collector URL is dynamically discovered at boot
-and installation time in the svn version of Debian Edu.</p>
-
-<p>The IP and DNS setup is fetched during boot using DHCP as usual.
-When a DHCP update arrives, the proxy setup is updated by looking for
-http://wpat/wpad.dat and using the content of this WPAD file to
-configure the http and ftp proxy in /etc/environment and
-/etc/apt/apt.conf. I decided to update the proxy setup using a DHCP
-hook to ensure that the client stops using the Debian Edu proxy when
-it is moved outside the Debian Edu network, and instead uses any local
-proxy present on the new network when it moves around.</p>
-
-<p>The DNS names of the LDAP, Kerberos and syslog server and related
-configuration are generated using DNS information at boot. First the
-installer looks for a host named ldap in the current DNS domain. If
-not found, it looks for _ldap._tcp SRV records in DNS instead. If an
-LDAP server is found, its root DSE entry is requested and the
-attributes namingContexts and defaultNamingContext are used to
-determine which LDAP base to use for NSS. If there are several
-namingContexts attibutes and the defaultNamingContext is present, that
-LDAP subtree is used as the base. If defaultNamingContext is missing,
-the subtrees listed as namingContexts are searched in sequence for any
-object with class posixAccount or posixGroup, and the first one with
-such an object is used as the LDAP base. For Kerberos, a similar
-search is done by first looking for a host named kerberos, and then
-for the _kerberos._tcp SRV record. I've been unable to find a way to
-look up the Kerberos realm, so for this the upper case string of the
-current DNS domain is used.</p>
-
-<p>For the syslog server, the hosts syslog and loghost are searched
-for, and the _syslog._udp SRV record is consulted if no such host is
-found. This algorithm works for both Debian Edu and the University of
-Oslo. A similar strategy would work for locating the sitesummary
-server, but have not been implemented yet. I decided to fetch and
-save these settings during installation, to make sure moving to a
-different network does not change the set of users being allowed to
-log in nor the passwords required to log in. Usernames and passwords
-will be cached by sssd when the user logs in on the Debian Edu
-network, and will not change as the laptop move around. For a
-non-roaming machine, there is no caching, but given that it is
-supposed to stay in place it should not matter much. Perhaps we
-should switch those to use sssd too?</p>
-
-<p>The user's SMB mount point for the network home directory is
-located when the user logs in for the first time. The LDAP server is
-consulted to look for the user's LDAP object and the sambaHomePath
-attribute is used if found. If it isn't found, the home directory
-path fetched from NSS is used instead. Assuming the path is of the
-form /site/server/directory/username, the second part is looked up in
-DNS and used to generate a SMB URL of the form
-smb://server.domain/username. This algorithm works for both Debian
-edu and the University of Oslo. Perhaps there are better attributes
-to use or a better algorithm that works for more sites, but this will
-do for now. :)</p>
-
-<p>This work should make it easier to integrate the Debian Edu clients
-into any LDAP/Kerberos infrastructure, and make the current setup even
-more flexible than before. I suspect it will also work for thin
-client servers, allowing one to easily set up LTSP and hook it into a
-existing network infrastructure, but I have not had time to test this
-yet.</p>
-
-<p>If you want to help out with implementing these things for Debian
-Edu, please contact us on debian-edu@lists.debian.org.</p>
-
-<p>Update 2010-08-09: Simon Farnsworth gave me a heads-up on how to
-detect Kerberos realm from DNS, by looking for _kerberos TXT entries
-before falling back to the upper case DNS domain name. Will have to
-implement it for Debian Edu. :)</p>
-</div>
- <div class="tags">
-
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
-
- </div>
- </div>
- <div class="padding"></div>
-