setcap-changesは永続的ですか


11

ファイルにsetcapを使用する場合、この変更は永続的ですか、それとも起動時にどこかにsetcapを呼び出さなければなりませんか?

setcap cap_sys_nice fooexecutable

回答:


15

setcapファイルには保存機能を呼び出して、拡張属性でsetxattrを。この拡張属性は、他の属性(所有権、権利など)と同様にファイルシステムに格納されます。

カーネル2.6.24以降、カーネルはsetcap(8)を使用して機能セットを実行可能ファイルに関連付けることをサポートしています。ファイル機能セットは、security.capabilityという名前の拡張属性(setxattr(2)を参照)に格納されます。

したがって、再起動するたびに上限をリセットする必要はありません。


ファイルが置き換えられた場合はどうなりますか?
ライアンウィンチェスター、2017年

1
@ryanwinchesterファイルの内容のみが変更されている場合は問題ありませんが、ファイルが削除または再作成されると、setcap容量も削除されます。
セドリックジュリアン

:(ああ、それが私の問題です。ディレクトリを再構築し、ポート80でリッスンするサーバーを起動するスクリプトがあります。setcap毎回実行する必要がない方法を理解する必要があります
ryanwinchester

「ファイルの内容のみが変更されても問題ない」というのは正しくありません。ファイルの内容を変更すると、その機能が削除されます。unix.stackexchange.com/a/283408/2526を
Richard Fearn

0

変更は永続的ですが、で使用すると問題が発生しましたnodejs

を使用authbindして、ユーザーごとに許可を与えることができます

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.