Saya memiliki proses server daemon http (frambusia) yang ingin saya buat server menulis file baru dengan umask 002, sehingga pengguna lain dalam grup yang sama dapat memodifikasi, memindahkan, atau menghapus file yang dibuat oleh proses daemon. Ini ada di Ubuntu 10.04.
Tidak seperti Apache, frambusia tidak memiliki opsi konfigurasi untuk umask, jadi metode apa yang ada untuk mengatur umask dari setiap proses daemon?
Saya menemukan jawaban ini tentang mengubah skrip init untuk ditambahkan umask 002
. Ini berhasil, tapi saya tidak yakin mengedit skrip init adalah cara terbaik untuk membuatnya mudah didokumentasikan dan dikonfigurasikan pada banyak mesin.
Saya juga menemukan referensi ke modul pam_umask di sini . Sepertinya ini memungkinkan per pengaturan pengguna umask untuk dikonfigurasikan di bidang GECOS dari / etc / passwd.
Apakah ada cara lain untuk mengatur umask untuk proses daemon? Dan apa yang akan menjadi cara yang disarankan?
sudo
untuk membaca/etc/passwd
. Ataucat
dalam hal ini (grep
akan menerima nama file sebagai argumen atau hanya menggunakangetent
seperti yang ditunjukkan Janne).sudo -u daemon bash -c umask
. Saya menguji non-interaktif dengan mengubah pengaturan dan me-restart daemon dan melihat izin pada file yang dibuatnya.dash
, tetapiumask
harus bekerja di dalamnya.Pada Ubuntu 10,04, pengaturan umask default global dapat dikontrol dengan modul pam_umask.
Beberapa detail ditemukan di blog ini yang terkait dengan Debian secara umum: http://muzso.hu/2008/01/22/default-permissions-with-libpam-umask
Modul pam_umask diinstal secara default di Ubuntu 10.04, tetapi perlu dikonfigurasi.
Edit /etc/pam.d/common-session, tambahkan baris:
Kemudian per pengaturan pengguna dapat diubah dengan menjalankan perintah:
untuk menambahkan pengaturan umask ke bidang GECOS di / etc / passwd.
Ini hanya berfungsi untuk shell non-interaktif, non-login seperti ketika skrip startup daemon dijalankan saat boot.
Untuk shell login, pengaturan umask perlu dihapus dari file konfigurasi shell lain seperti / etc / profile, /etc/login.defs, atau direktori home pengguna .profile, .bashrc, dll. Jika tidak, pengaturan pam_umask ditimpa. Lihat halaman manual pam_umask untuk urutan konfigurasi.
sumber
Jika layanan dimulai melalui alat "start-stop-daemon" umask dapat ditentukan pada tingkat baris perintah dengan parameter "--umask" mis:
Menyesuaikan skrip awal untuk membaca detail seperti itu dari file konfigurasi mungkin lebih transparan daripada menambahkan pengaturan berbasis pengguna - ini tentu saja tergantung pada prosedur startup yang digunakan untuk daemon.
Informasi lebih lanjut dapat diambil dari man-Page: man start-stop-daemon
sumber