Files
operation-bin/create_personal_dir.md
T
2026-08-16 00:24:18 +02:00

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

  1. Checks the shared parent directory (/sf/bernina/config/personal/) allows self-service. It needs to be group-writable (so anyone in unx-sf_bernina_bs can create their own subdirectory) with the sticky bit set (so nobody can rename or delete someone else's directory — the same principle /tmp uses). 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/bernina is one NFS export shared by every Bernina host.
  2. Creates (or verifies) <username>'s own subdirectory, locked to 2700 — 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.