私は、ノードアプリケーションが少数のポート(http2サーバーであるため、正確に443)にバインドできるようにしたいと思います。
私はこれを一緒にするsudo setcap cap_net_bind_service=+ep /path/to/node
これはブーツを通してはっきりと覚えています。私は別のバージョンのノードをインストールするためにnvmを使用しています。
機能を再追加するのは簡単ですが、おそらくどこかで以前のバージョンのノードでオフにする権限が蓄積されています。
しかし、起動順序のどの部分でこのようなことが起こるのかわかりません。誰かが私にどこで(私はDebianを実行しているのか)教えてもらえますか?
編集する
私はこの情報を実行可能ファイルの追加プロパティに保存する必要があると思います。ただし、このように設定されたファイルに追加のプロパティが見つかりません。
答え1
これらの関数はディレクトリ内のファイルエントリと共に保存されます(より正確にはインデックスノード、他の種類の権限と同様に)。起動中に特別なことは起こりません。
GNU coreutils 8.23以降、このls
コマンドはLinux機能を認識しないため、出力にプログラムが機能を設定したことを知らせる内容が見つかりません。getcap
機能を一覧表示するには、このコマンドを使用します。
ファイルからすべての機能を消去するにはを使用しますsetcap -r /path/to/file
。しかし、何も消去する必要はありません。機能はファイルと共に保存されるため、ファイルを削除する以外には何もする必要はありません。
答え2
を参照してくださいsetcap(8)
。機能が設定されました。実行ファイルの場合。 SUIDまたはSGIDに似ていますが、より詳細に機能します。これは「開始プロセス」のどこでも処理されません。ファイルがプログラムとして実行されるたびに、生成されたプロセスはこれらの機能を取得します。
はい、高い権限でファイルの古いバージョンを維持すると重大なセキュリティリスクが発生するため、新しいバージョンをインストールするときに古いバージョンを削除するのが最善です。