Following up with more testing: Given: $ mkdir 'a \134053 b' 'a \053 b' 'a + b' $ echo a > 'a \134053 b'/a $ echo b > 'a \053 b'/b $ echo c > 'a + b'/c (henceforth dubbed a, b, c, respectively), such that, trivially: $ ls -lR 'a \134053 b' 'a \053 b' 'a + b' 'a \053 b': total 4 -rw-r--r-- 1 nabijaczleweli users 2 Mar 30 17:17 b 'a \134053 b': total 4 -rw-r--r-- 1 nabijaczleweli users 2 Mar 30 17:17 a 'a + b': total 4 -rw-r--r-- 1 nabijaczleweli users 2 Mar 30 17:17 c And each is exported as such: # exportfs -vo fsid=100 szarotka:'/tmp/a \134053 b' # exportfs -vo fsid=200 szarotka:'/tmp/a \053 b' # exportfs -vo fsid=300 szarotka:'/tmp/a + b' exporting szarotka.nabijaczleweli.xyz:/tmp/a \134053 b exporting szarotka.nabijaczleweli.xyz:/tmp/a \053 b exporting szarotka.nabijaczleweli.xyz:/tmp/a + b Then: If only a is exported, the following state is achieved: # exportfs /tmp/a + b szarotka.nabijaczleweli.xyz /mnt/filling/machine/1200-S121 <world> # exportfs -s /tmp/a\040+\040b szarotka.nabijaczleweli.xyz(ro,wdelay,root_squash,no_subtree_check,fsid=100,sec=sys,ro,secure,root_squash,no_all_squash) /mnt/filling/machine/1200-S121 *(rw,async,wdelay,crossmnt,no_root_squash,no_subtree_check,mountpoint,sec=sys,rw,secure,no_root_squash,no_all_squash) $ cat /var/lib/nfs/etab /tmp/a\040\134134053\040b szarotka.nabijaczleweli.xyz(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,fsid=100,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash) /mnt/filling/machine/1200-S121 *(rw,async,wdelay,hide,crossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,mountpoint,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash) If then b is also exported, the following state is achieved: # exportfs /tmp/a + b szarotka.nabijaczleweli.xyz /mnt/filling/machine/1200-S121 <world> # exportfs -s /tmp/a\040+\040b szarotka.nabijaczleweli.xyz(ro,wdelay,root_squash,no_subtree_check,fsid=100,sec=sys,ro,secure,root_squash,no_all_squash) /mnt/filling/machine/1200-S121 *(rw,async,wdelay,crossmnt,no_root_squash,no_subtree_check,mountpoint,sec=sys,rw,secure,no_root_squash,no_all_squash) $ cat /var/lib/nfs/etab /tmp/a\040+\040b szarotka.nabijaczleweli.xyz(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,fsid=100,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash) /tmp/a\040\134053\040b szarotka.nabijaczleweli.xyz(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,fsid=200,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash) /mnt/filling/machine/1200-S121 *(rw,async,wdelay,hide,crossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,mountpoint,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash) If then c is also exported, the following state is achieved: # exportfs /tmp/a + b szarotka.nabijaczleweli.xyz /mnt/filling/machine/1200-S121 <world> # exportfs -s /tmp/a\040+\040b szarotka.nabijaczleweli.xyz(ro,wdelay,root_squash,no_subtree_check,fsid=300,sec=sys,ro,secure,root_squash,no_all_squash) /mnt/filling/machine/1200-S121 *(rw,async,wdelay,crossmnt,no_root_squash,no_subtree_check,mountpoint,sec=sys,rw,secure,no_root_squash,no_all_squash) $ cat /var/lib/nfs/etab /tmp/a\040+\040b szarotka.nabijaczleweli.xyz(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,fsid=300,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash) /mnt/filling/machine/1200-S121 *(rw,async,wdelay,hide,crossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,mountpoint,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash) Note how a and b were folded into c(?) but not into each other, which is especially concerning given, that, in /every/ case, regardless which are exported: szarotka$ mkdir a b c szarotka# mount -t nfs tarta:'/tmp/a \134053 b' a mount.nfs: mounting tarta:/tmp/a \134053 b failed, reason given by server: No such file or directory szarotka# mount -t nfs tarta:'/tmp/a \053 b' b mount.nfs: mounting tarta:/tmp/a \053 b failed, reason given by server: No such file or directory szarotka# mount -t nfs tarta:'/tmp/a + b' c nabijaczleweli@szarotka:/tmp$ l c total 4.0K -rw-r--r-- 1 nabijaczleweli users 2 Mar 30 17:17 c This could be spun as an "accidental exposure" bug or w/e, but this is primarily just insane. Or, if it's somehow expected and working as intended, then it warrants a note in the manual, at least. Best, наб Please keep me in CC, as I'm not subscribed.
Attachment:
signature.asc
Description: PGP signature