Mengapa `postgres` membutuhkan shell?

13

Dalam sistem Debian Wheezy saya, saya perhatikan bahwa pengguna postgres 'postgres', "administrator PostgreSQL", menggunakan /bin/bashsebagai shell. Namun, saya tidak tahu mengapa ini diperlukan. Mengubah ini /bin/falsemasih memungkinkan saya untuk menggunakan perintah psql.

Jadi, mengapa pengguna sistem postgresmemerlukan shell, dan apakah itu harus secara khusus /bin/bash?

timothymctim
sumber
5
Ini diperlukan untuk menjalankan cronjob pg_autovacuum.
Simon Richter

Jawaban:

14

Lihat Mengapa pengguna 'tempat sampah' memerlukan shell login?

Dikatakan pola ini untuk pengguna sistem

  • Umum di Debian, dan tidak banyak di distribusi lain.
  • Dianggap sebagai masalah bug / keamanan asli oleh beberapa orang.
  • Diperlukan untuk menjalankan pekerjaan cron sebagai pengguna itu, dan mungkin juga oleh beberapa skrip jika mereka menggunakan su -c untuk dijalankan sebagai pengguna ini. Seharusnya mudah untuk memeriksa ini. Periksa pekerjaan cron milik psql. Periksa skrip dalam paket postgres ( dpkg-query -L) dan ambil mereka untuk penggunaan su.

Disarankan juga bahwa jika kekhawatiran utama Anda adalah semacam penyalahgunaan pengguna yang melibatkan login SSH, mungkin akan lebih mudah untuk menggunakan AllowGroups di sshd_config. (Membuat sshlogingrup, seperti yang direkomendasikan oleh Panduan Server Ubuntu ).

Pola ini diperbaiki dalam sistem dasar awal tahun ini - lihat bug # 274229 . Jadi, jika Anda berpikir postgres dapat diperbaiki juga, akan lebih baik untuk menghubungi pengelola paket misalnya dengan mengajukan bug.

sourcejedi
sumber