您的位置:首页 > 运维架构 > Linux

linux系统定制都已完成,如何设置才能免输入用户名和密码直接登入linux?

2015-03-12 20:45 886 查看
reply:

系统启动过程中,kernel 最后会调用init,这个程序会读取 /etc/inittab文件进行设置。在/etc/inittab文件中有定义系统登陆:如下

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

/sbin/minigetty (有的系统是getty )的内容是获取终端属性并正确进行设置。然后minigetty调用 login进行用户密码验证来登陆系统。当然login做的工作不仅仅是这些还有与用户相关的资源系统设置等等。所以你要想不进行用户密码验证工作可以替换
上面的/sbin/mingetty,也可以替换init,也可以替换login,也可以在核心中更改直接登陆而不需要进行这些繁琐的验证。但是为了保证系统终端的正常,推荐改动login比较好。具体的改动,你可以看看login
,mingetty的源代码就可以了。


ask again:

我已经通过修改/sbin/minigetty为/bin/ash实现了直接登陆系统,但当修改为/bin/bash时,使用很不正常,键盘输入老是打印不出来,不知原因何在?

login的源码在哪里?redhat7.3中自带吗?

reply:

使用不正常是因为你的系统没有进行终端设置.正常情况下这些设置是由
mingetty来设置的.你用 bash来取代mingetty,就没有作这个操作,所以终端显示就会出些莫名其妙的问题.

推荐改动mingetty 和login来实现.

你可以用如下命令来获取源码包的名称:

rpm -qf /bin/login

rpm -qf /sbin/mingetty

从源码盘上下载相应的源码包.

===========================================================================

使用beaglebone black板子试验过了,使用了一个脚本文件替换/bin/login文件。

inittab文件如下:

z6:6:respawn:/sbin/sulogin

S:2345:respawn:/sbin/getty 115200 ttyO0

替代/bin/login的文件为

#!/bin/sh

则运行如下:

输入用户名后没有反应,进不了系统。看来/sbin/getty会输出am335x-evm:

然后login启动登陆验证。

看来还得重新配置编译根文件系统或修改编译login程序来取消登陆验证了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐