GNU/Linux >> Belajar Linux >  >> Linux

Sistem menolak SSH dan macet saat 'boot up' setelah instalasi systemd

Saya menduga ada /etc/nologin file (yang isinya adalah "Sistem sedang boot.") yang tidak dihapus setelah penginstalan systemd.

[update] Apa yang memengaruhi Anda adalah bug yang dilaporkan di BTS Ubuntu Desember lalu. Itu karena /var/run/nologin berkas (=/run/nologin sejak /var/run adalah symlink ke /run ) yang tidak dihapus pada akhir penginstalan systemd.

/etc/nologin adalah file nologin standar. /var/run/nologin adalah file alternatif yang dapat digunakan oleh nologin Modul PAM (man pam_nologin ).

Perhatikan bahwa tidak ada nologin file memengaruhi koneksi oleh root pengguna, hanya pengguna biasa yang dicegah masuk.


@xhienne memberi saya arah yang benar.

Setelah mencari melalui sistem file saya menemukan /run/nologin (@xhienne menyarankan /etc/nologin) file, menghapus yang memecahkan masalah.

Kondisi ada di /usr/lib/tmpfiles.d/systemd.conf

Saya akan menyertakan langkah ini dalam skrip saya.

sudo rm /run/nologin

Note:  This answer is applicable whether or not systemd was recently installed or not.
       The issue was observed even after systemd had been installed a long time.

Pelacak bug distribusi Mageia tampaknya memiliki masalah terkait yang terbuka:Bug 21080 - login ssh dinonaktifkan oleh /run/nologin setelah reboot .

Setelah cukup sering mengalami masalah ini, menemukan pelacak membantu mengidentifikasi solusi yang mungkin lebih tepat daripada sekadar menghapus /run/login berkas.

Berikut ini beberapa data yang terkait dengan kueri untuk informasi di pelacak bug tersebut:

$ ls -l /run/nologin 
-rw-r--r-- 1 root root 42 Mar  6 10:11 /run/nologin
$ cat /run/nologin
"System is booting up. See pam_nologin(8)"
$ date
Tue Mar  6 11:10:38 CST 2018
$ uptime
11:15:10 up  1:04,  0 users,  load average: 0.07, 0.07, 0.08
$ systemctl status systemd-user-sessions.service
● systemd-user-sessions.service - Permit User Sessions
   Loaded: loaded (/usr/lib/systemd/system/systemd-user-sessions.service; static
   Active: inactive (dead)
     Docs: man:systemd-user-sessions.service(8)
$ systemctl show -p Requires,Wants,Requisite,BindsTo,PartOf,Before,After  systemd-user-sessions.service --no-pager
Requires=system.slice sysinit.target
Requisite=
Wants=
BindsTo=
PartOf=
[email protected] prefdm.service crond.service multi-user.target plymouth-quit-wait.service session-c2.scope display-manager-failure.service systemd-ask-password-wall.service session-c1.scope [email protected] shutdown.target [email protected] user-983.slice user-1000.slice plymouth-quit.service
After=system.slice systemd-journald.socket remote-fs.target network.target systemd-journal-flush.service sysinit.target nss-user-lookup.target basic.target

Pelacak bug dan informasi di atas tampaknya menunjukkan bahwa masalah sebenarnya disebabkan oleh kegagalan untuk memulai systemd-user-sessions.service daemon.

Ini sebenarnya yang terjadi dalam kasus saya, jadi solusi berikut untuk sementara memperbaiki kondisi login yang dilarang:

$ sudo systemctl start systemd-user-sessions.service

Setelah melakukan ini, /run/nologin file tidak lagi ada, dan, seseorang dapat SSH dari sistem lain. Namun, perhatikan bahwa ini tidak dapat diandalkan karena terkadang pengguna tidak memiliki akses ke konsol sistem yang terpengaruh.


Linux
  1. Delapan cara untuk melindungi akses SSH di sistem Anda

  2. Superblock, Inode, Dentry, dan File?

  3. Jalankan Layanan Systemd Setelah Automount Tapi Setelah Diakses?

  1. Cara Membuat dan Query Sistem File BTRFS

  2. Systemd:Menggunakan After dan Requires

  3. Terjebak memilih antara ext4 dan ext3 untuk sistem file

  1. Cara memulai layanan systemd setelah pengguna masuk dan menghentikannya sebelum pengguna keluar

  2. Dalam file layanan systemd, bagaimana saya mengatakan setelah USB siap?

  3. Jadikan layanan pengguna systemd tergantung pada target sistem