选择显示字体大小

如何实现linux操作系统的自动登录

  开机自动登录linux,并自动运行xwindow应用程序,有其特殊的应用背景,如基于linux平台的监控系统,linux启动后不需要身份验证,而直接运行监控程序等等。本文以redhat7.2为平台,结合linux启动过程,介绍了如何避免身份验证自动登录,并直接进入x window自动运行应用程序。

  一、linux启动的最后阶段的工作

  linux在启动过程的最后阶段(具体启动步骤略),init会根据/etc/inittab文件的最后一行x:5:respawn:/etc/x11/prefdm-nodaemon运行/etc/x11/prefdm脚本,(redhat7.2缺省时是这样的)。prefdm脚本的主要任务是完成x window的启动,可以有几种启动x window的方法,都包含在prefdm脚本中,几种主要方法有:

  运行xdm启动x window;
  运行gdm,进入gnome桌面环境;
  运行kdm进入kde桌面环境;
  自动登录进入linux

  prefdm脚本框架大致如下:

#!/bin/sh
path=/sbin:/usr/sbin:/bin:/usr/bin:/usr/x11r6/bin
. /etc/profile.d/lang.sh
# 第一步:查看是否为自动登录
if [ -f /etc/sysconfig/autologin -a -x /usr/sbin/autologin ]; then
  if /usr/sbin/autologin; then  
    exit 0
  fi
fi

# 第二步:如果不是自动登录方式,就会在/etc/sysconfig/desktop中搜寻用户偏爱的登录方式
  ......
# 可以是kdm、gdm以及xdm,并运行相应的kdm、gdm以及xdm。
  ......

  二、自动登录的实现(autologin的实现)

  在/etc/x11/prefdm脚本中,是否实现自动登录有一个条件测试开关,事实上,可以在这里注释掉测试开关,直接执行启动x window的操作。

  自动登录实质上就是绕过身份验证,直接启动x window。x window的启动可以由xinit来完成。

  xinit用来启动x window系统服务器以及系统上的第一个客户程序,可以通过为xinit传递命令行参数的形式指定要启动的服务器及客户程序。如果不传递参数给xinit,它将在用户的根目录下寻找并运行.xinitrc脚本来启动客户程序;在用户的根目录下寻找并运行.xserverrc脚本来启动服务器。如果xinit在用户的根目录下找不到.xinitrc、.xserverrc,xinit将使用缺省的x:0。实际上,用startx来启动x更为方便。对于运行单一会话的xwindow系统,startx提供了更为良好的用户接口。同样,startx首先在用户的根目录下寻找.xinitrc及.xserverrc脚本,如果找不到这两个脚本,startx将使用/etc/x11/xinit/xinitrc以及/etc/x11/xinit/xserverrc脚本。startx脚本的最基本框架是:

  a、 寻找.xinitrc,如果没有则使用xinitrc;
  b、 寻找.xserverrc,如果没有则使用xserverrc;
  c、 根据找到的脚本确定xinit的参数;

  由此可看出,startx在不需要传递任何参数的情况下,可以完成启动x的任务,因此,可以如下修改/etc/x11/prefdm脚本来实现自动登录:

#!/bin/sh
path=/sbin:/usr/sbin:/bin:/usr/bin:/usr/x11r6/bin
. /etc/profile.d/lang.sh
# 第一步:查看是否为自动登录
#if [ -f /etc/sysconfig/autologin -a -x /usr/sbin/autologin ]; then
#注释掉上边的条件测试,直接运行startx
    if /usr/x11r6/bin/startx; then  
      exit 0
    fi
#fi

  当然,应确保/etc/inittab中的启动级别为5。

  重新启动系统,会发现系统不验证用户身份,直接进入xwindow,此时的用户身份为root。但是,如果原来root有自己的桌面、默认shell时,上述方法启动x不一定保证还能拥有原来的设置。为了在启动x后,在避免验证身份的同时,又不改变用户原来的设置,那么在运行startx之前,还有工作要做。

本新闻共2


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons