mirror of
https://github.com/rancher/os.git
synced 2025-09-05 00:37:12 +00:00
Recovery console
This commit is contained in:
@@ -82,7 +82,7 @@ func consoleInitFunc() error {
|
||||
log.Error(err)
|
||||
}
|
||||
|
||||
if err := writeRespawn(); err != nil {
|
||||
if err := writeRespawn("rancher", true); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ func consoleInitFunc() error {
|
||||
return syscall.Exec(respawnBinPath, []string{"respawn", "-f", "/etc/respawn.conf"}, os.Environ())
|
||||
}
|
||||
|
||||
func generateRespawnConf(cmdline string) string {
|
||||
func generateRespawnConf(cmdline, user string, sshd bool) string {
|
||||
var respawnConf bytes.Buffer
|
||||
|
||||
for i := 1; i < 7; i++ {
|
||||
@@ -163,7 +163,7 @@ func generateRespawnConf(cmdline string) string {
|
||||
|
||||
respawnConf.WriteString(gettyCmd)
|
||||
if strings.Contains(cmdline, fmt.Sprintf("rancher.autologin=%s", tty)) {
|
||||
respawnConf.WriteString(" --autologin rancher")
|
||||
respawnConf.WriteString(fmt.Sprintf(" --autologin %s", user))
|
||||
}
|
||||
respawnConf.WriteString(fmt.Sprintf(" --noclear %s linux\n", tty))
|
||||
}
|
||||
@@ -175,23 +175,25 @@ func generateRespawnConf(cmdline string) string {
|
||||
|
||||
respawnConf.WriteString(gettyCmd)
|
||||
if strings.Contains(cmdline, fmt.Sprintf("rancher.autologin=%s", tty)) {
|
||||
respawnConf.WriteString(" --autologin rancher")
|
||||
respawnConf.WriteString(fmt.Sprintf(" --autologin %s", user))
|
||||
}
|
||||
respawnConf.WriteString(fmt.Sprintf(" %s\n", tty))
|
||||
}
|
||||
|
||||
respawnConf.WriteString("/usr/sbin/sshd -D")
|
||||
if sshd {
|
||||
respawnConf.WriteString("/usr/sbin/sshd -D")
|
||||
}
|
||||
|
||||
return respawnConf.String()
|
||||
}
|
||||
|
||||
func writeRespawn() error {
|
||||
func writeRespawn(user string, sshd bool) error {
|
||||
cmdline, err := ioutil.ReadFile("/proc/cmdline")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
respawn := generateRespawnConf(string(cmdline))
|
||||
respawn := generateRespawnConf(string(cmdline), user, sshd)
|
||||
|
||||
files, err := ioutil.ReadDir("/etc/respawn.conf.d")
|
||||
if err == nil {
|
||||
|
Reference in New Issue
Block a user