Jika suatu program memerlukan izin tulis, bagaimana cara mengaturnya dengan chown? Secara khusus, apa yang akan memprogram izin foo untuk mengatasi kesalahan ini?
failed to create pid file '/var/run/bar.pid': Permission denied
permissions
el_pup_le
sumber
sumber
/var/run
Pendekatan umum: tentukan pengguna dan grup proses yang mencoba mengakses file. Ini sering ditemukan dalam konfigurasi perangkat lunak (seperti webservers / mailservers / ...), tetapi jika perangkat lunak sudah berjalan gunakan ini:
Cari proses yang ingin Anda konfigurasi hak aksesnya. Kolom pertama memberi tahu Anda nama pengguna yang menjalankannya.
Ini akan memberi tahu Anda ke grup mana pengguna berada.
Ubah pemilik atau grup file untuk mencocokkan layanan.
Catatan 1: Saat pertanyaan menunjukkan bahwa file tersebut berada di / var / run / Saya berasumsi hanya satu proses yang membutuhkan akses, jika ini tidak benar, Anda tidak boleh mengubah pemilik atau grup, tetapi Anda dapat mempertimbangkan untuk menambahkan proses 'pengguna ke grup atau membuat grup baru untuk file / folder ini.
Catatan 2: Hal-hal lucu dapat terjadi dengan apparmor, yang merupakan sistem keamanan: hal itu dapat mencegah proses penulisan ke file dan folder yang mereka miliki (pada tingkat sistem file) semua hak yang diperlukan. Dengan
aa-status
Anda dapat melihat apakah aturan khusus untuk layanan Anda aktif.sumber
Yang saya lakukan hanyalah menambahkan pembuatan folder tepat sebelum start-stop-deamon dijalankan. Ini berfungsi karena skrip umumnya dijalankan sebagai root selama start up. Itu hanya membuat folder di / var / run dan mengubah pemiliknya segera, sehingga PID dapat ditulis.
Dalam contoh di bawah ini, saya memeriksa keberadaan subfolder dari / var / run di mana saya meletakkan PID sebagai pengguna run saat ini, dalam hal ini pengguna 'pi' (karena saya menggunakan raspberry).
Periksa juga tautan ini karena ini sangat mendidik bagi saya: Skrip Python dijalankan sebagai layanan , namun, itu tidak mencakup masalah yang dibahas di sini.
Bagian contoh skrip shell saya:
sumber