Root's login shell is now /bin/zsh (5.9, staged in /boot/extra so rc.local
reinstalls it at boot). bash stays the fallback; both shells source one shared
env and alias file. Shell config consolidated on the flash drive at
/boot/config/shell/, installed by install.sh from both boot paths, which were
previously fighting over /root/.bashrc.
Four things that were silently broken are fixed:
- /boot/config/passwd cannot set root's shell at all — rc.S.cont reads it but
hardcodes /bin/bash. The change is made from the go file instead, guarded so
a missing zsh falls back to bash rather than locking root out.
- git refused to work in every project share (dubious ownership: owned by
jazzymc, not root), which silently emptied every branch lookup. safe.directory
entries added.
- /root/.gitconfig was in RAM, so the credential helper and store died at every
reboot.
- Login shells lost the custom PATH, because /etc/zprofile hardcodes it after
~/.zshenv. Also fixed the literal backslash in the go file's shebang.
Documents the Shell Environment section and corrects the Boot Sequence, which
the go file change made out of date.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>