分类:
2012-02-28 23:45:47
原文地址:Linux下login/shell 作者:itisthinktime
内容:
1、linux登录;
2、shell;
一、登录
linux系统完成系统初始(在inittab中相应runlevel service启动成功)之后,即将呈现给用户登陆界面以提示输入用户名以及密码。linux中是通过mingetty提供登陆终端,参见/etc/inittab中不同运行级别对应的终端程序:
1. 44 # Run gettys in standard runlevels
2. 45 1:2345:respawn:/sbin/mingetty tty1
3. 46 2:2345:respawn:/sbin/mingetty tty2
4. 47 3:2345:respawn:/sbin/mingetty tty3
5. 48 4:2345:respawn:/sbin/mingetty tty4
6. 49 5:2345:respawn:/sbin/mingetty tty5
7. 50 6:2345:respawn:/sbin/mingetty tty6
从上面可以看出在各运行级别中都将以respawn方式运行mingetty程序。mingetty程序能打开终端、设置模式。同时它会显示一个文本登录界面(见/etc/issue),该登录界面中会提示用户输入用户名与密码, login程序将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其它信息(例如用户的主目录,登陆的shell等)。其中passwd以及shadow文件格式见: Fedora下用户/用户组管理(三)。
login登陆成功后,向对应的终端输出最近一次登录的信息(通常在/var/log/lastlog中),并检查用户是否有新邮件(通常在/usr/spool/mail/用户名下)。之后,开始设置各种环境变量。
对于linux,其默认的shell为bash。首先系统寻找/etc/profile脚本文件,并执行;然后,若用户主目录中存在.bash_profile文件,则执行之,这些全部完成后,即提示常见的$提示符。
二、shell
上面已经说明,当login接收的用户名以及密码经验证是正确的之后:欢迎进入linux的世界!通常CLI模式下遇到的第一个程序:shell。