Solusi 1:
untuk menghindari kesalahan ini, Anda dapat menyelesaikan executable non-symlink dengan which node
, sebagai contoh lengkap:
sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``
perintah "yang mana" menunjukkan jalur lengkap dari perintah shell.
Solusi 2:
Menemukannya. Ternyata bagaimanapun saya menginstal node, membuat sym-link di /usr/bin/node yang menunjuk ke sym-link lain di /etc/alternatives/node yang menunjuk ke sym-link lain di /usr/bin/nodejs.
Menjalankan perintah terhadap /usr/bin/nodejs berhasil.
Solusi 3:
FWIW, opsi lain adalah menggunakan authbind. Authbind menggunakan mekanisme yang sedikit berbeda untuk mencapai tujuan yang serupa dengan CAP_NET_BIND_SERVICE. Yaitu. memungkinkan aplikasi non-istimewa untuk menggunakan port istimewa.
Instal dari apt:
sudo apt-get update && sudo apt-get install authbind
Dengan asumsi app.js yang diinginkan berjalan di bawah "pengguna" pengguna yang tidak memiliki hak istimewa dan Anda ingin mengikat ke port 80:
sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
Kemudian jalankan aplikasi Anda seperti ini:
authbind node app.js
Jika Anda ingin menggunakan sesuatu seperti "selamanya" (pada dasarnya melakukan daemonisasi aplikasi node), maka inilah caranya:
authbind --deep forever app.js