Users and permissions: accounts, login, enforced file permissions, setuid, su, passwd, doas
The kernel now checks owner/group/other on open, create, unlink, rename, exec and path search; honours set-user-id and set-group-id; restricts kill, mount, reboot and mknod; keeps supplementary groups; and implements chown. devtmpfs nodes carry owners and modes that chmod/chown keep. Terminals run login, the image has root and schos, X starts as the ordinary user. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EVRhxi9zpdW2uDUN4FVcao
This commit is contained in:
parent
b3f72cd95e
commit
020aa6113c
34 changed files with 1342 additions and 120 deletions
|
|
@ -1,11 +1,11 @@
|
|||
# The interactive shell on /dev/tty1, the first virtual terminal.
|
||||
|
||||
Label = os.schos.console-shell
|
||||
# zsh, not /bin/sh. mksh stays as /bin/sh and is what schinit falls back to
|
||||
# when no manifest loads -- so if zsh ever fails to start, the recovery shell
|
||||
# is a different program rather than the same broken one. See ports/zsh.
|
||||
Program = /bin/zsh
|
||||
Args = -zsh
|
||||
# A login prompt, not a shell: /etc/schos-getty hands the terminal to login,
|
||||
# which asks who is there and starts their shell. tty6 keeps a root shell
|
||||
# with no login, for when this part of the system is what is broken.
|
||||
Program = /bin/sh
|
||||
Args = sh /etc/schos-getty
|
||||
RunAtLoad = yes
|
||||
KeepAlive = yes
|
||||
|
||||
|
|
@ -15,8 +15,6 @@ KeepAlive = yes
|
|||
# most: a line editor with no TERM cannot ask terminfo how to move a cursor.
|
||||
Environment = TERM=linux
|
||||
Environment = PATH=/bin:/usr/bin
|
||||
Environment = HOME=/root
|
||||
Environment = SHELL=/bin/zsh
|
||||
|
||||
# This job reads the console, so it has to own it: schinit puts every job in
|
||||
# its own session, and a session with no controlling terminal is not delivered
|
||||
|
|
|
|||
|
|
@ -6,15 +6,13 @@
|
|||
# what /dev/tty1 and /dev/tty2 being different terminals means.
|
||||
|
||||
Label = os.schos.tty2-shell
|
||||
Program = /bin/zsh
|
||||
Args = -zsh
|
||||
Program = /bin/sh
|
||||
Args = sh /etc/schos-getty
|
||||
RunAtLoad = yes
|
||||
KeepAlive = yes
|
||||
|
||||
Environment = TERM=linux
|
||||
Environment = PATH=/bin:/usr/bin
|
||||
Environment = HOME=/root
|
||||
Environment = SHELL=/bin/zsh
|
||||
|
||||
ControllingTerminal = yes
|
||||
|
||||
|
|
|
|||
|
|
@ -10,15 +10,13 @@
|
|||
# for six lines each is the wrong trade.
|
||||
|
||||
Label = os.schos.tty3-shell
|
||||
Program = /bin/zsh
|
||||
Args = -zsh
|
||||
Program = /bin/sh
|
||||
Args = sh /etc/schos-getty
|
||||
RunAtLoad = yes
|
||||
KeepAlive = yes
|
||||
|
||||
Environment = TERM=linux
|
||||
Environment = PATH=/bin:/usr/bin
|
||||
Environment = HOME=/root
|
||||
Environment = SHELL=/bin/zsh
|
||||
|
||||
ControllingTerminal = yes
|
||||
|
||||
|
|
|
|||
|
|
@ -10,15 +10,13 @@
|
|||
# for six lines each is the wrong trade.
|
||||
|
||||
Label = os.schos.tty4-shell
|
||||
Program = /bin/zsh
|
||||
Args = -zsh
|
||||
Program = /bin/sh
|
||||
Args = sh /etc/schos-getty
|
||||
RunAtLoad = yes
|
||||
KeepAlive = yes
|
||||
|
||||
Environment = TERM=linux
|
||||
Environment = PATH=/bin:/usr/bin
|
||||
Environment = HOME=/root
|
||||
Environment = SHELL=/bin/zsh
|
||||
|
||||
ControllingTerminal = yes
|
||||
|
||||
|
|
|
|||
|
|
@ -10,15 +10,13 @@
|
|||
# for six lines each is the wrong trade.
|
||||
|
||||
Label = os.schos.tty5-shell
|
||||
Program = /bin/zsh
|
||||
Args = -zsh
|
||||
Program = /bin/sh
|
||||
Args = sh /etc/schos-getty
|
||||
RunAtLoad = yes
|
||||
KeepAlive = yes
|
||||
|
||||
Environment = TERM=linux
|
||||
Environment = PATH=/bin:/usr/bin
|
||||
Environment = HOME=/root
|
||||
Environment = SHELL=/bin/zsh
|
||||
|
||||
ControllingTerminal = yes
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
# A root shell on /dev/tty6, with no login: the way in when login itself is
|
||||
# what has broken. Every other terminal asks who is there.
|
||||
#
|
||||
# An interactive shell on /dev/tty6.
|
||||
#
|
||||
# NVT is 6 (include/dev/vt.h) and the kernel creates all six terminals, but only
|
||||
|
|
|
|||
Loading…
Reference in a new issue