Linuxバージョンのランチャーで利用可能な機能のリストを入手する必要があります。ユーザーがファイルに付与する機能を選択できるようにするためです。標準ライブラリを使用してこれを行う機会がありますか?私がこれを行うことができた唯一の方法は境界セットを見ることでしたがcash --print
、
- なぜそう言って
...,cap_audit_read,38,39
表示されますか?/usr/include/linux/capability.h
CAP_LAST_CAP
CAP_AUDIT_READ(37)
- 可能であれば、実際にいくつかの機能説明を使用します。
ベストアンサー1
次の1つ以上です。
コマンドライン:
$ /sbin/capsh --decode=$(grep CapBnd /proc/1/status|cut -f2)
コード( list.c
)から:
#include <stdio.h>
#include <sys/capability.h>
int main(int argc, char **argv) {
for (cap_value_t c = 0; c < cap_max_bits(); c++) {
char *name = cap_to_name(c);
printf("%s\n", name);
cap_free(name);
}
}
次のようにコンパイルされました。
$ gcc -o list list.c -lcap
最新バージョンにはcapsh
このcapsh --explain=
主張が含まれています。例えば、
$ /sbin/capsh --explain=cap_chown
cap_chown (0) [/proc/self/status:CapXXX: 0x0000000000000001]
Allows a process to arbitrarily change the user and
group ownership of a file.