1.9 KiB
1.9 KiB
Personal directories on /sf/bernina
/sf/bernina/config/personal/<username> is the Bernina beamline
convention for a per-user directory on real, git-friendly NFS storage —
as opposed to ~/network_drives, which is SMB and can't hold a git
repository at all (see migrate_to_network_drive.md). It's the location
the gopass guide (gopass.md) uses for a personal gopass clone that's
automatically the same on every Bernina host.
Usage
create_personal_dir.sh # create/verify your own directory
create_personal_dir.sh someuser # provision on someone else's behalf (needs root, or ask them to self-serve)
Run it again any time — it's safe to re-run, and only changes anything that doesn't already match.
What it does
- Checks the shared parent directory (
/sf/bernina/config/personal/) allows self-service. It needs to be group-writable (so anyone inunx-sf_bernina_bscan create their own subdirectory) with the sticky bit set (so nobody can rename or delete someone else's directory — the same principle/tmpuses). If it isn't set up that way yet and you own it, the script offers to fix it (chmod 3775,chgrp unx-sf_bernina_bs) — this only needs doing once, ever, since/sf/berninais one NFS export shared by every Bernina host. - Creates (or verifies)
<username>'s own subdirectory, locked to2700— owner-only, nobody else (not even other team members) can list or read into it, despite the parent being browsable.
Why this layout
- Parent
rwxrwxr-x+ sticky: anyone can see who has a personal directory and add their own; nobody can touch anyone else's entry. - Each user's own directory
rwx------: totally private once inside.
This is the standard "shared drop-in directory, private subdirectories"
pattern — structurally the same idea as /tmp, scoped to the beamline
group instead of the whole system.