Appearance
系统启动后,init 首先 fork + exec 一个 getty 程序(在 linux 上这个程序是 agetty),然后当用户在 getty 输入用户名后,getty 会 exec 替换为 login 程序,再输入密码,如果登录成功,exec 替换为 shell 程序,登录失败返回替换为 getty 程序。
如果在 /etc/passwd 中,把用户登录的 shell 改成其他的程序,登录后一样会启动对应的程序,从而防止该用户启动 shell。
简单来说,我们开机欢迎的交互界面并不是 shell。