Cara port binding untuk proses bukan root

Kemarin malam saya belajar hal baru saat mencoba Caddy web server, yakni di Linux sebenarnya user/proses bukan root tidak bisa menggunakan port dibawah 1024, istilah kerennya low ports. Ya… karena sekian tahun selalu pakai repository dan pakai root saat memasangnya mungkin saya tidak sadar bagaimana cara kerjanya. Ya, tercerahkan lagi jadinya. 😀

Misal aplikasi anda cara installnya tidak standar lewat repo (seperti Caddy yang saya sedang dalami sekarang ini) maka port defaultnya pasti angkanya cukup besar, dan karena yang akan saya pakai adalah web server tentu harus bisa port 80 (HTTP) dan 443 (HTTPS).

Nah kita perlu memberikan kemampuan untuk dengan perintah dibawah:

setcap 'cap_net_bind_service=+ep' ./caddy

Intinya program dengan nama caddy pada lokasi aktif saat itu kita beri hak istimewa untuk binding port berangka kecil. Lokasinya bisa terserah, misal /usr/local/bin/node untuk NodeJS.

Sudah, begitu saja dan prosesnya sudah bisa memakai port yang ditentukan tanpa perlu memakai root atau sudo setiap kali bekerja.

Atau anda bisa memastikannya dengan perintah ini:

getcap /usr/local/bin/caddy

Kalau sukses balasannya akan seperti ini:

/usr/local/bin/caddy = cap_net_bind_service+ep

Untuk mencabut kapabilitas yang kita berikan juga mudah:

setcap 'cap_net_bind_service=-ep' /usr/local/bin/caddy

Ya kita balik saja simbolnya untuk membatalkannya. 😀

Semoga bermanfaat. 🙂

Tinggalkan komentar