GNU/Linux >> Belajar Linux >  >> Linux

/etc/motd tidak ditampilkan ketika pipa bernama?

Anda tidak melewatkan sesuatu yang jelas. Saya menggali sumber pam_motd modul untuk mencari tahu yang ini.

Triknya adalah pam_motd itu lakukan hal berikut dengan /etc/motd :

  1. Periksa ukuran file.
  2. Alokasikan buffer sebesar itu.
  3. Baca seluruh file ke dalam buffer.
  4. Keluarkan buffer melalui metode keluaran apa pun yang digunakan. (PAM itu modular, bagaimanapun juga; tidak bisa menganggap itu terminal.)

Karena sebuah pipa tidak memiliki ukuran file, ini gagal pada langkah 1.

EDIT :Mengapa PAM pertama-tama mengkhawatirkan ukuran? Saya membayangkan itu untuk mencegah penolakan layanan, baik disengaja maupun tidak disengaja. Ketika PAM memeriksa ukuran file, itu juga menolak untuk mengeluarkan motd jika file lebih besar dari 64 kbytes. Saya membayangkan siapa pun yang mencoba masuk ke sistem akan sangat sedih jika seseorang berhasil menyalurkan file film DVD ke /etc/motd, misalnya -- belum lagi berapa banyak memori yang mungkin diperlukan.


Tautan ini akan memandu Anda melalui semua langkah penting


Linux
  1. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  2. Nonaktifkan umpan balik saat mengetik kata sandi di prompt sudo

  3. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  1. gema atau cetak /dev/stdin /dev/stdout /dev/stderr

  2. Di file /etc/hosts/ saya di Linux/OSX, bagaimana cara melakukan subdomain wildcard?

  3. Perbedaan antara /etc/hosts dan /etc/resolv.conf

  1. Tautan Simbolik Tidak Berfungsi Seperti yang Diharapkan Saat Mengubah Pengguna?

  2. Bagaimana /etc/motd Diperbarui?

  3. CentOS/RHEL:/tmp mount point tidak dipasang secara otomatis saat ditambahkan di /etc/fstab