Linux
Linux 伺服器中的自動 root 登錄
我正在嘗試在不同的 Linux 伺服器發行版(Fedora、Ubuntu、Centos 等)中執行測試。
我知道有一個初始化系統可以允許程序在啟動後執行(無需登錄)。問題是我不想為發行版之間的每個不同的初始化系統都有一個特殊情況。有沒有辦法在啟動後允許root自動登錄?
通過這樣做,我可以為任何發行版擁有相同的 shell 腳本。或者有沒有辦法解決這個問題?
我知道有一個初始化系統可以允許程序在啟動後執行(無需登錄)。
不幸的是,現在沒有一個init 系統,而是有六種流行的 init 系統。例如 sysv init、systemd、upstart 等。
無論如何,如果您真的希望系統為您提供具有 root 訪問權限的控制台,您可能需要更新您的 init 系統。
我為我的幾個系統上的串列埠執行此操作。我有兩個非常不同的配置,我只使用兩個不同版本的 Debian。 我無法想像您將能夠提出一種適用於所有發行版的單一方法。事情如何開始並沒有一致性。 Systemd 在各個發行版中應該非常相似,但尚未被廣泛接受。
帶有 sysv init (wheezy) 的 Debian 在串列埠上降為 root
# /etc/inittab ... # serial port getty spawns sulogin, which drops to a root shell # on debian if root has a disabled password T0:23:respawn:/sbin/getty -n -l /sbin/sulogin -L ttyS0 57600 vt102 ...
帶有 systemd (jessie) 的 Debian 在串列埠上降為 root
#/etc/systemd/system/getty.target.wants/serial-getty@ttyS1.service # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. [Unit] Description=Serial Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) Documentation=http://0pointer.de/blog/projects/serial-console.html BindsTo=dev-%i.device After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service After=rc-local.service # If additional gettys are spawned during boot then we should make # sure that this is synchronized before getty.target, even though # getty.target didn't actually pull it in. Before=getty.target IgnoreOnIsolate=yes [Service] ExecStart=-/sbin/agetty -n -l /sbin/sulogin --keep-baud 115200,38400,9600 %I $TERM Type=idle Restart=always UtmpIdentifier=%I TTYPath=/dev/%I TTYReset=yes TTYVHangup=yes KillMode=process IgnoreSIGPIPE=no SendSIGHUP=yes [Install] WantedBy=getty.target
您最好的選擇可能是放棄以 root 身份登錄的想法,而是使用像 puppet 這樣的配置管理工具,或者可以為您抽像出一些不同的發行版差異。讓該工具觸發您的測試執行。