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
30 lines
1.3 KiB
Text
30 lines
1.3 KiB
Text
# The interactive shell on /dev/tty1, the first virtual terminal.
|
|
|
|
Label = os.schos.console-shell
|
|
# 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
|
|
|
|
# The environment this job's shell starts with. Until schinit grew an
|
|
# Environment key, every process on SchOS started with an empty environment --
|
|
# the kernel built one and exec threw it away. $TERM is the one that matters
|
|
# most: a line editor with no TERM cannot ask terminfo how to move a cursor.
|
|
Environment = TERM=linux
|
|
Environment = PATH=/bin:/usr/bin
|
|
|
|
# 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
|
|
# terminal input at all. Without this the shell echoes and executes nothing.
|
|
ControllingTerminal = yes
|
|
|
|
StandardIn = /dev/tty1
|
|
StandardOut = /dev/tty1
|
|
StandardError = /dev/tty1
|
|
|
|
# Seconds between respawns. Guards against a shell that dies instantly
|
|
# defaults to 10. One is enough for a shell someone just exited on purpose.
|
|
ThrottleInterval = 1
|