Prakteknya bukan untuk membuat satu pengguna dan grup per aplikasi, tetapi per layanan. Yaitu, program yang dijalankan oleh pengguna lokal tidak perlu diinstal sebagai pengguna selain root. Ini adalah 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 yang berdedikasi sehingga jika ia melakukan kesalahan (karena bug, mungkin dipicu oleh penyerang) kerusakan yang dapat ia lakukan terbatas: hanya file data daemon yang terpengaruh (kecuali penyerang berhasil menemukan lubang root lokal , yang bisa terjadi). Sebagai contoh, daemon basis data mysqldberjalan sebagai pengguna dan grup khusus mysql:mysqldan file data dari basis data ( /var/lib/mysql/*) menjadi milik mysql:mysql.
Perhatikan bahwa daemon 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 file program dan konfigurasi. The mysqldProses tidak memiliki Timpa bisnis /usr/sbin/mysqldatau /etc/mysql/my.cnf, sehingga file-file ini tidak harus milik para mysqlpengguna atau dapat ditulis oleh mysqlpengguna atau mysqlkelompok. Jika beberapa file hanya dapat dibaca oleh daemon dan administrator, mereka harus dimiliki oleh root pengguna dan oleh grup khusus, dan memiliki mode 0640 ( rw-r-----).
Kategori khusus yang dapat dieksekusi yang tidak dapat dimiliki root:rootadalah program yang dijalankan oleh pengguna tetapi perlu dijalankan dengan hak istimewa ekstra. Executable ini harus setuid root jika harus dijalankan (setidaknya sebagian) sebagai root; maka yang dapat dieksekusi harus memiliki mode 4755 ( rwsr-xr-x). Jika program membutuhkan dengan hak istimewa ekstra tetapi tidak sebagai root, maka program tersebut harus dibuat setgid, sehingga hak istimewa tambahan datang melalui grup dan bukan melalui pengguna. Yang dapat dieksekusi kemudian memiliki mode 2755 ( rwxr-sr-x). Alasannya ada dua:
- Yang dapat dieksekusi tidak boleh diizinkan untuk memodifikasi sendiri, sehingga jika pengguna berhasil mengeksploitasi kerentanan, mereka mungkin dapat memodifikasi file data yang digunakan oleh program tetapi tidak menyuntikkan trojan horse ke dalam executable untuk menyerang pengguna lain yang menjalankan program. .
- File data yang dapat dieksekusi milik grup. Program setuid harus beralih antara pengguna nyata (pengguna yang memanggil program) untuk berinteraksi dengan pengguna dan dengan pengguna efektif (pengguna yang menjalankan program) untuk mengakses file data pribadinya (alasan untuk itu untuk memiliki hak istimewa ekstra). Program setgid selanjutnya dapat memisahkan data per-pengguna yang hanya dapat diakses oleh grup (mis. Dengan menyimpan file yang dimiliki oleh pengguna dalam direktori yang hanya dapat diakses oleh root dan grup program).