Saya telah diberi spesifikasi RPM yang sebagian lengkap untuk layanan yang kami tulis. Sejauh ini membuat direktori yang diperlukan, menyalin file, mengatur izin, dll, tetapi itu tidak membuat akun sistem yang diperlukan bahwa layanan akan berjalan di bawah. Saya diberi tahu bahwa yang terbaik bagi RPM untuk mengurus ini, jadi saya menambahkan
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
Ini berhasil membuat akun pengguna (dan grup terkait), jadi nanti ketika mencoba untuk mengatur kepemilikan / izin pada file layanan, yang berhasil juga.
Masalah saya saat ini adalah, a) jika akun pengguna sudah ada, instalasi RPM gagal karena useradd
gagal (karena pengguna sudah ada); dan b) saya tidak tahu bagaimana untuk memiliki rpm -e myservice
juga menghapus pengguna terkait dan kelompok.
user-accounts
services
rpm
Pembuat kode
sumber
sumber
Jawaban:
Saya benar-benar menyelesaikan ini secara mandiri, dengan melihat spesifikasi RPM lain yang melakukan hal serupa. Jika Anda hanya ingin menambahkan pengguna (syarat), gunakan tautan Ignacio. Saya melakukan ini:
Ini memastikan bahwa RPM "membersihkan sendiri" tetapi masih menyediakan kemampuan untuk menginstal bahkan jika akun sudah ada.
sumber
Salah satu dari dua jawaban sebelumnya adalah produksi siap karena metode-metode itu akan menghapus pengguna jika paket ditingkatkan. Yum menginstal paket baru kemudian menghapus paket lama. Ini akan membuat Anda tanpa pengguna. Tidak keren!
Gunakan metode ini sebagai gantinya:
sumber
Respons dari Coderer baik tetapi perintah pre kedua memberi saya kesalahan pada Centos 7. Grup harus ditentukan.
Saya menambahkan juga redirect ke / dev / null untuk mengabaikan gema yang tidak diinginkan.
sumber