GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Disarankan Membuat Grup Dan Pengguna Untuk Beberapa Aplikasi?

Sebagian besar waktu, ketika menginstal program dari sumber, disarankan untuk membuat pengguna baru dan grup baru dan memberikan /usr/local/ kepemilikan pengguna dan grup yang baru saja dibuat.

  • Mengapa praktik seperti itu dianggap sebagai praktik yang baik?

  • Apa yang ditingkatkan?

Contoh:pengguna mysql/grup mysql untuk server database MySQL.

Jawaban yang Diterima:

Praktiknya bukan membuat satu pengguna dan grup per aplikasi, tetapi per layanan. Artinya, program yang dijalankan oleh pengguna lokal tidak perlu diinstal sebagai pengguna selain root. Itu daemon, program yang berjalan di latar belakang dan yang mengeksekusi permintaan yang datang melalui jaringan atau sarana komunikasi lainnya, yang harus dijalankan sebagai pengguna khusus.

Daemon berjalan sebagai pengguna khusus sehingga jika berperilaku buruk (karena bug, mungkin dipicu oleh penyerang) kerusakan yang dapat dilakukan terbatas:hanya file data daemon yang terpengaruh (kecuali penyerang berhasil menemukan lubang root lokal , yang dapat terjadi). Misalnya, daemon database mysqld berjalan sebagai pengguna dan grup khusus mysql:mysql dan file data database (/var/lib/mysql/* ) milik mysql:mysql .

Perhatikan bahwa daemon yang dapat dieksekusi dan data statis lainnya serta file konfigurasi yang digunakan tetapi tidak boleh dimodifikasi oleh daemon tidak boleh menjadi milik pengguna khusus; mereka harus dimiliki oleh root:root , seperti kebanyakan program dan file konfigurasi. mysqld proses tidak memiliki bisnis yang menimpa /usr/sbin/mysqld atau /etc/mysql/my.cnf , jadi file-file ini tidak boleh milik mysql pengguna atau dapat ditulis oleh mysql pengguna atau mysql kelompok. Jika beberapa file hanya dapat dibaca oleh daemon dan administrator, file tersebut harus dimiliki oleh root pengguna dan oleh grup khusus, dan memiliki mode 0640 (rw-r------code> ).

Kategori khusus dari executable yang tidak dapat dimiliki oleh root:root adalah program yang dipanggil oleh pengguna tetapi harus dijalankan dengan hak ekstra. Eksekusi ini harus setuid root jika perlu dijalankan (setidaknya sebagian) sebagai root; maka executable harus memiliki mode 4755 (rwsr-xr-x ). Jika program membutuhkan hak istimewa tambahan tetapi tidak sebagai root, maka program harus dibuat setgid, sehingga hak istimewa tambahan datang melalui grup dan bukan melalui pengguna. Eksekusi kemudian memiliki mode 2755 (rwxr-sr-x ). Alasannya ada dua:

  • Yang dapat dieksekusi tidak boleh diizinkan untuk memodifikasi dirinya sendiri, sehingga jika pengguna berhasil mengeksploitasi kerentanan, mereka mungkin dapat memodifikasi file data yang digunakan oleh program tetapi tidak menyuntikkan kuda trojan ke dalam file yang dapat dieksekusi untuk menyerang pengguna lain menjalankan program.
  • File data yang dapat dieksekusi milik grup. Program setuid harus beralih antara pengguna nyata (pengguna yang menjalankan program) untuk berinteraksi dengan pengguna dan dengan pengguna efektif (pengguna yang menjalankan program) untuk mengakses file data pribadinya (alasan untuk itu memiliki hak ekstra). Program setgid selanjutnya dapat memisahkan data per pengguna yang hanya dapat diakses oleh grup (misalnya dengan menyimpan file yang dimiliki oleh pengguna dalam direktori yang hanya dapat diakses oleh root dan grup program).
Terkait:Temukan n kata yang paling sering dalam file dengan daftar kata berhenti dari baris perintah?
Linux
  1. Cara mengemas aplikasi Python untuk Linux

  2. Cara membuat dan menghapus grup pengguna di Linux

  3. Diutamakan Pengguna Dan Pemilik Grup Dalam Izin File?

  1. Buat File Sebagai Pengguna Dan Grup Yang Berbeda?

  2. Buat dan hapus pengguna CentOS

  3. Panduan Pemula untuk Administrasi Pengguna dan Grup di Linux

  1. Mengapa Linux? – Beberapa Alasan Untuk Mengkonversi Ke Linux

  2. Howto MySQL:Buat pengguna dan berikan izin ke database

  3. Pembuatan Grup dan Pengguna 'thesql', Pengaturan Kepemilikan?