Linux – 文字介面 tty(S) 的自動登入

TTY – Text Terminal

Linux 開機後有 Text mode(文字模式) 與 Graphical Mode (圖形模式),相關設定請參考 – http://benjr.tw/96968 ,本篇討論 Linux 開機後如何自動登入文字介面,關於 X-Window 自動 login 的方法請參考 – http://benjr.tw/3354

  • RHEL / CentOS 5 與之前的版本
    傳統的 sysvinit (SystemV) 開機方式,只要修改 /etc/inittab

    [root@localhost ~]# vi /etc/inittab
    #1:2345:respawn:/sbin/mingetty tty1
    1:2345:once:/sbin/mingetty –-autologin root tty1
    

    我只設定 tty1 自動登入,可以依需求把其他的 tty 都改成自動登入.

    note:須先確認 /etc/securetty 相對應的 tty0 … 都有開啟.

  • RHEL / CentOS 6 版本
    RHEL 6 開機採用了 upstart – http://benjr.tw/10578 方式,之前採用的 /etc/inittab (SystemV) 檔案設定.只留了 initdefault 這一行用以設定 runlevel,其他設定定義皆儲存在 /etc/init/ 目錄下

    [root@localhost ~]# vi /etc/init/tty.conf
    # tty – getty
    #
    # This service maintains a getty on the sepcified device.
    stop on runlevel [016]
    
    respawn
    instance $TTY
    exec /sbin/mingetty –noclear –-autologin=root $TTY
    
  • RHEL / CentOS 7 , 8 版本
    RHEL 7 ,8 開機採用了 SystemD – http://benjr.tw/94315 方式,設定檔為 /etc/systemd/system/getty.target.wants/getty\@tty1.service ( 該設定檔其實是 softlink 指向 getty@tty1.service -> /usr/lib/systemd/system/getty@.service)

    [root@localhost ~]# vi /etc/systemd/system/getty.target.wants/getty\@tty1.service 
    ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM
    #ExecStart=-/sbin/agetty --noclear %I $TERM
    

    把原先的 ExecStart=-/sbin/agetty –noclear %I $TERM 修改成為 ExecStart=-/sbin/agetty –autologin root –noclear %I $TERM 即可.

TTYS – Serial Console

如果是透過 serial port(ttyS#) 去做連線時需要自己編寫 /usr/sbin/autologin 程式,很簡單就短短兩行 script file .

[root@localhost ~]# vi /usr/sbin/autologin
#!/bin/sh
exec /bin/login -f root
[root@localhost ~]# chmod a+x /usr/sbin/autologin 
  • RHEL5 與之前的版本
    之前傳統的 sysvinit 開機方式,只要修改 /etc/inittab

    [root@localhost ~]# vi /etc/inittab
    #1:2345:respawn:/sbin/mingetty tty1
    1:2345:once:/sbin/agetty -n -l /usr/sbin/autologin 115200 ttyS0
    

    我只設定 ttyS0 自動登入,可以依需求把其他的 ttyS 都改成自動登入.
    note:並確定 /etc/securetty 相對應的 ttyS0 … 都有開啟.

  • RHEL6 版本
    RHEL 6 開機採用了 upstart – http://benjr.tw/10578 方式,所以之前採用的 /etc/inittab 檔案設定.目前只留了 initdefault 這一行用以設定 runlevel,其他設定定義皆儲存在 /etc/init/ 目錄下

    [root@localhost ~]# vi /etc/init/serial.conf
    start on fedora.serial-console-available DEV=* and stopped rc RUNLEVEL=[2345]
    stop on runlevel [S016]
    instance $DEV
    respawn
    pre-start exec /sbin/securetty $DEV
    #exec /sbin/agetty /dev/$DEV $SPEED vt100-nav
    exec /sbin/agetty -n -l /usr/sbin/autologin 115200 ttyS0
    

    agetty 所使用的參數 -n -l 功能如下

    • -n
      Do not prompt the user for a login name.
    • -l login_program
      Invoke the specified login_program instead of /bin/login.
沒有解決問題,試試搜尋本站其他內容

3 thoughts on “Linux – 文字介面 tty(S) 的自動登入

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料