Dump of existing HTML tutorials into docuwiki format by the HTML::WikiConverter::DokuWiki Perl module. Useful for moving things from HTML tutes to the wiki at the SDF wiki. Convert script and source HTML also provided.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.8 KiB

===== Mounting SDF Folders on a NetBSD Local Machine via mount_psshfs(8) =====
==== What is mount_psshfs(8) ? ====
[[http://netbsd.org/|NetBSD]] has its own implementation of [[http://fuse.sourceforge.net/|FUSE]] called ReFUSE(3); mount_psshfs(8) creates sshfs mounts via PUFFS(4) (Pass-to-Userspace Framework File System). See the respective manpages and References section for details.
==== Creating basic psshfs mounts: ====
You'll likely need root permissions to run mount_psshfs(8); examples below assume the sudo(8) tool is installed.
**ex.1)** create a basic read-only mount of an SDF user's $HOME directory under /mnt:
sudo mount_psshfs -o ro sdf_user@freeshell.org /mnt
sdf_user@freeshell.org's password: ********
Use the mount(8) command to see what the mount looks like:
mount -t puffs\|psshfs
sdf_user@freeshell.org on /mnt type puffs|psshfs (read-only)
**ex.2)** mount sdf_user@freeshell.org/gopher read-write with compression and public key authentication:
sudo mount_psshfs -O Compression=yes -O IdentityFile=/home/local_user/.ssh/id_rsa sdf_user@freeshell.org:gopher /mnt
For help setting up public key authentication see the [[http://sdf.org/?tutorials/SSH-SDF#public_key|SSH-SDF]] tutorial.
**ex.3)** put the above in /etc/fstab; mount to local /puffsmnt:
sudo mkdir /puffsmnt
sudoedit /etc/fstab
# psshfs PUFFS mount of gopher dir on sdf_user@.sdf.org
sdf_user@sdf.org:/ftp/pub/users/sdf_user /puffsmnt psshfs rw,noauto,-O=BatchMode=yes,-O=IdentityFile=$HOME/.ssh/id_rsa,-t=-1
sudo mount /puffsmnt
==== Fixing the displayed file permissions with **mount_umap(8)** ====
With the above examples you'll probably notice that the UID:GID values for the psshfs mount are either numerical values or otherwise not what you might expect; this is because your local system doesn't have mappings for the remote UID:GID (what you're seeing) to the local system. If you like, you can create a local //sub-tree// of the puffs mount with re-mapped UID:GID values using mount_umap(8). The following example creates two mapfiles (must be root owned) and a new mount point under the local user's $HOME directory and mounts /puffsmnt from ex.4 above:
**ex.5)** mount /puffsmnt to ~local_user/puffy with local_user:users permissions:
First, we find who's who on local system (note: UID/GID are fields 3 & 4):
ls -dnl /puffsmnt
drwxr-xr-x 42 012345 550 512 Aug 31 2011 puffsmnt
grep local_user /etc/passwd
local_user:*:1000:100:Loco User ,Seattle,WA ,:/home/local_user:/bin/ksh
From above we see that we need to re-map local UID 1000 to 012345, and local GID 100 to 550. We just have one remapping each so the uid-mapfile and gid-mapfile files get made like so:
sudoedit /uid-mapfile
1000 012345
sudoedit /gid-mapfile
100 550
Now we make the ~local_user/puffy dir and mount the umap sub-tree of /puffsmnt on it:
mkdir ~local_user/puffy
sudo mount_umap -o nocoredump -g /gid-mapfile -u /uid-mapfile /puffsmnt ~local_user/puffy
Use mount(8) and ls(1) to see what the umap mount looks like:
mount -t umap
/puffsmnt on /home/local_user/puffy type umap (nocoredump)
ls -dl ~local_user/puffy
drwxr-xr-x 101 local_user users 512 Dec 6 2010 puffy
Alternately, you can add the umap mount to /etc/fstab:
sudoedit /etc/fstab
/puffsmnt /home/local_user/puffy umap rw,noauto,nocoredump,-g=/gid-mapfile,-u=/uid-mapfile
sudo mount ~local_user/puffy
==== Unmounting umap and psshfs mounts: ====
Unmount umap and psshfs mounts in the usual way with umount(8), but do it in //reverse// order:
sudo umount ~local_user/puffy
sudo umount /puffsmnt
==== References: ====
* [[http://www.netbsd.org/docs/puffs/|NetBSD PUFFS documentation]]
* [[http://man.netbsd.org/|NetBSD manpages]]
\\ $Id: psshfs.html,v 1.2 2011/12/13 05:53:48 jgw Exp $