-<p>I
-<a href="http://www.regjeringen.no/upload/FAD/Vedlegg/Hoeringer/Refkat_V2/MicrosoftNorge.pdf">Microsoft
-sin høringsuttalelse</a> til
-<a href="http://www.regjeringen.no/nb/dep/fad/dok/horinger/horingsdokumenter/2009/horing---referansekatalog-versjon-2.html?id=549422">forslag
-til versjon 2 av statens referansekatalog over standarder</a>, lirer
-de av seg følgende FUD-perle:</p>
-
-<p><blockquote>"Vorbis, OGG, Theora og FLAC er alle tekniske
- spesifikasjoner overordnet styrt av xiph.org, som er en
- ikke-kommersiell organisasjon. Etablerte og anerkjente
- standardiseringsorganisasjoner, som Oasis, W3C og Ecma, har en godt
- innarbeidet vedlikeholds- og forvaltningsprosess av en standard.
- Det er derimot helt opp til hver enkelt organisasjon å bestemme
- hvordan tekniske spesifikasjoner videreutvikles og endres, og disse
- spesifikasjonene bør derfor ikke defineres som åpne
- standarder."</blockquote></p>
-
-<p>De vokter seg vel for å nevne den anerkjente
-standardiseringsorganisasjonen IETF, som er organisasjonen bak HTTP,
-IP og det meste av protokoller på Internet, og RFC-standardene som
-IETF står bak. Ogg er spesifisert i
-<a href="http://ietf.org/rfc/rfc3533.txt">RFC 3533</a>, og er uten
-tvil å anse som en åpen standard. Vorbis er
-<a href="http://ietf.org/rfc/rfc5215.txt">RFC 5215</a>. Theora er
-
-under standardisering via IETF, med
-<a href="http://svn.xiph.org/trunk/theora/doc/draft-ietf-avt-rtp-theora-00.txt">siste
-utkast publisert 2006-07-21</a> (riktignok er dermed teksten ikke
-skrevet i stein ennå, men det blir neppe endringer som ikke er
-bakoverkompatibel). De kan være inne på noe når det gjelder FLAC da
-jeg ikke finner tegn til at <a
-href="http://flac.sourceforge.net/format.html">spesifikasjonen
-tilgjengelig på web</a> er på tur via noen
-standardiseringsorganisasjon, men i og med at folkene bak Ogg, Theora
-og Vorbis også har involvert seg i Flac siden 2003, så ser jeg ikke
-bort fra at også den organiseres via IETF. Jeg kjenner personlig lite
-til FLAC.</p>
-
-<p>Uredelig argumentasjon bør en holde seg for god til å komme med,
-spesielt når det er så enkelt i dagens Internet-hverdag å gå
-misvisende påstander etter i sømmene.</p>
+<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>