Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 自動登入與 X Window 啟動完整實作:繞過驗證直進桌面並自動執行應用

編輯:Linux 教學

開機自動登入 Linux 並直接啟動 X Window 應用程式,適用於 Linux 監控系統等無需身分驗證的專用場景。本文以 RedHat 7.2 為平台,結合啟動流程詳細實作。

一、Linux 啟動最終階段與 prefdm 腳本

啟動最後階段,init 依 /etc/inittab 最後一行執行:

x:5:respawn:/etc/X11/prefdm -nodaemon

prefdm 負責啟動 X Window,支援多種方式:

  • xdm:標準 X 顯示管理器
  • gdm:進入 GNOME 桌面
  • kdm:進入 KDE 桌面
  • 自動登入

prefdm 核心邏輯框架

#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
. /etc/profile.d/lang.sh

# 步驟 1:檢查自動登入條件
if [ -f /etc/sysconfig/autologin -a -x /usr/sbin/autologin ]; then
    if /usr/sbin/autologin; then exit 0; fi
fi

# 步驟 2:非自動登入,依 /etc/sysconfig/desktop 偏好啟動 kdm/gdm/xdm
...

二、自動登入實作(修改 prefdm)

自動登入本質:繞過身分驗證,直接啟動 X Window。startx 可無參數完成啟動(尋找 .xinitrc/.xserverrc 或預設腳本)。修改 prefdm 註解條件判斷,直接執行 startx:

#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
. /etc/profile.d/lang.sh

# 註解條件測試,直接啟動 startx
if /usr/X11R6/bin/startx; then exit 0; fi

確保 /etc/inittab 啟動等級為 5。重開機即直接進入 X Window(身分為 root),但可能不保留 root 原有桌面/Shell 設定。

三、保留用戶原有環境(桌面、Shell、環境變數)

觀察原版 prefdm 保留的自動登入介面:/usr/sbin/autologin 執行檔 + /etc/sysconfig/autologin 設定檔。

1. 設定檔 /etc/sysconfig/autologin

# config for autologin
USER=root
EXEC=/usr/X11R6/bin/startx

2. 執行檔 /usr/sbin/autologin (autologin.c)

核心邏輯:

  1. 讀取設定檔獲取 USER、EXEC
  2. getpwnam() 取得用戶 UID、GID、家目錄、Shell
  3. chown /dev/console、/dev/tty 給該用戶
  4. 設定 setuid/setgid 等進程身分相關系統呼叫
  5. 設定環境變數 HOME、SHELL、USER、LOGNAME
  6. chdir 切換至用戶家目錄
  7. execvp() 執行 EXEC 指定程式(startx)

編譯:gcc -o autologin autologin.c,複製至 /usr/sbin/autologin,設定檔置 /etc/sysconfig/autologin。重開機即自動登入並保留完整用戶環境。

簡化版(不需設定檔)

若所有參數寫死在程式碼(預設 root、startx),prefdm 簡化為:

if /usr/sbin/autologin; then exit 0; fi

僅需複製執行檔。

四、選擇 KDE/GNOME 並自動啟動 X 應用程式

  • 切換桌面:switchdesk gnome(或 kde)後重開機即固定
  • KDE 自動啟動:將應用程式連結/腳本放入 /root/.kde/Autostart/(注意不同用戶家目錄不同)
  • GNOME 自動啟動:主選單 → 程式 → 設定 → 工作階段 → 工作階段特性 → 啟動程式 頁籤加入

啟動等級為 3 時,只需在啟動腳本加入指令即可;X Window 環境下利用桌面內建自動啟動介面最優雅。

Copyright © Windows教程網 All Rights Reserved