|
发表于 2009-10-29 18:25:12
|
显示全部楼层
方法 1.
grub 中直接 init=/bin/bash
方法 2.- mv /sbin/init /sbin/init.bak
- ln -s /bin/bash /sbin/init
复制代码
方法 3.
inittab 中 /sbin/mingetty tty1 改为
/bin/bash
或
/sbin/mingetty -n -l /bin/bash tty1
区别是用 tty 还是直接用 console 设备
方法 4.- mv /bin/login /bin/login.bak
- ln -s /bin/bash /bin/login
复制代码 或- mv /bin/login /bin/login.bak
- cat > /bin/login << EOF && chmod +x /bin/login
- /bin/bash
- EOF
复制代码
方法 n 多,关键是要清楚 SysVinit 原理或 Linux 启动原理
大致来说 kernel 启动后如果没有指定 init (即方法1)
默认会执行 /sbin/init (方法2);
init 会调用 /etc/inittab 信息(方法3);
mingetty/agetty/getty 会调用 /bin/login(方法4);
login 会最终把控制权交给 /bin/bash
修改中间任何一个环节都可以达到目的
总结起来是两类方式:
1. 不执行 getty
2. 让 getty 不执行 login |
|