Files
Pierre Warnier 81d0e1776d docs/fixes: man pages, benchmarks, BSD research, Copilot findings
Fixes #56 — 14 man pages in docs/man/ (markdown format).
Fixes #67 — 8 Copilot findings fixed:
  - useradd: proper date validation (Feb 31 rejected)
  - userdel/usermod: --root wired to SysRoot
  - usermod: --expiredate validates input
  - usermod: --login validates name + updates shadow/group
  - userdel: -f separated from -r behavior
  - useradd: home dir resolved through SysRoot
  - skel: preserves directory permissions
Fixes #69 — benchmark script (benches/benchmark.sh)
Fixes #70 — FreeBSD/NetBSD reference (docs/FREEBSD-NETBSD-REFERENCE.md)

456 tests, zero clippy warnings.
2026-03-24 13:05:40 +01:00

1.0 KiB

chsh(1) - change login shell

NAME

chsh - change login shell

SYNOPSIS

chsh [options] [LOGIN]

DESCRIPTION

The chsh command changes the user login shell. This determines the name of the user's initial login command. A normal user may only change the login shell for their own account; the superuser may change the login shell for any account.

The new shell must be listed in /etc/shells unless the caller is root.

OPTIONS

-l, --list-shells
Print the list of shells listed in /etc/shells and exit.
-R, --root CHROOT_DIR
Apply changes in the CHROOT_DIR directory.
-s, --shell SHELL
Set the login shell to SHELL. The shell must be an absolute path and must be listed in /etc/shells (unless the caller is root).

EXIT STATUS

0
Success.
1
Permission denied or operation failed.

FILES

/etc/passwd
User account information.
/etc/shells
List of valid login shells.

SEE ALSO

chfn(1), login(1), passwd(5), shells(5)