GNU/Linux >> Belajar Linux >  >> Linux

Apakah Ini Praktik yang Baik Untuk Menjalankan Daemon Di Bawah Akun Pengguna Non-root?

Saya telah mengembangkan aplikasi yang menggunakan NTP untuk mengubah waktu jaringan, untuk menyinkronkan dua komputer saya.
Ini berjalan sebagai root , karena hanya yang terakhir yang diizinkan untuk mengubah waktu dan tanggal di Linux (saya kira).

Sekarang, saya ingin menjalankannya sebagai pengguna. Tapi, saya perlu mengakses waktu.

  • Apakah menjalankan daemon di bawah akun pengguna non-root merupakan praktik yang baik?
  • Haruskah saya memberikan aplikasi saya kemampuan seperti CAP_SYS_TIME ?
  • Apakah ini tidak menimbulkan kerentanan keamanan?
  • Apakah ada cara yang lebih baik?

Jawaban yang Diterima:

Apakah menjalankan daemon di bawah akun pengguna non-root merupakan praktik yang baik?

Ya, dan ini umum. Misalnya, Apache mulai sebagai root dan kemudian memotong proses baru sebagai www-data (secara default).
Seperti yang dikatakan sebelumnya, jika program Anda diretas (misalnya:injeksi kode), penyerang tidak akan mendapatkan akses root, tetapi akan terbatas pada hak istimewa yang Anda berikan kepada pengguna tertentu.

Haruskah saya memberikan "Kemampuan" seperti "CAP_SYS_TIME"?

Ini adalah ide yang bagus karena Anda menghindari penggunaan setuid , dan batasi izin untuk kemampuan yang sangat spesifik ini.

Haruskah saya menggunakan cara lain untuk melakukannya yang akan dianggap sebagai “Praktek yang Baik”?

Anda dapat meningkatkan keamanan, misalnya:

  • Jalankan layanan sebagai pengguna yang tidak memiliki hak istimewa, tanpa shell.
  • Gunakan chroot untuk mengunci pengguna di direktori home-nya.

Linux
  1. 4 Cara Menonaktifkan Akun Root di Linux

  2. Jalankan Docker sebagai pengguna non-root

  3. Jalankan skrip shell sebagai pengguna yang berbeda

  1. Menjalankan Podman tanpa root sebagai pengguna non-root

  2. Kali Default Pengguna Non-Root

  3. Bagaimana menjalankan rsyslog sebagai pengguna non-root di CentOS/RHEL 7

  1. Akun Pengguna "systemd-bus-proxy"

  2. Izinkan cronjobs dijalankan oleh pam bahkan jika kata sandi pengguna kedaluwarsa

  3. Cara menggunakan Sudo untuk mengizinkan pengguna non-root menjalankan perintah tertentu