capng_c 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/capng/capability.c +22 -0
- data/ext/capng/capability_info.c +82 -0
- data/ext/capng/capng.h +7 -0
- data/lib/capng/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a26ab3bf7c3169172ec3e2c162630f0079b161533ec473984e4d52737d522b91
|
4
|
+
data.tar.gz: 9f378edbfb74593fc731acb2f4ead7b591207b0f358f9ce4e1caf28e747188d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92d50ae4dc1c276709d38a2bbac7421ac0ec68d8dee70d8f5d28c4b2aa3e33ef81ae179dafd7f214703d68a8eeda5b4f2220eca786f50fdd77838a88fec754fd
|
7
|
+
data.tar.gz: 2f2f6cff1a51adeb4fe038871b3e3a5e5ec7b9075b18f31653000a5aea785e610bce39570cc4a2252c4dc4518ecd9f0be20436a28473d3769a4329fa98a912ae
|
data/ext/capng/capability.c
CHANGED
@@ -117,6 +117,27 @@ rb_capng_capability_from_name(VALUE self, VALUE rb_capability_name_or_symbol)
|
|
117
117
|
return INT2NUM(capability);
|
118
118
|
}
|
119
119
|
|
120
|
+
/*
|
121
|
+
* Obtain capability code and name pairs with enumerable.
|
122
|
+
*
|
123
|
+
* @yield [Integer, String]
|
124
|
+
* @return [nil]
|
125
|
+
*
|
126
|
+
*/
|
127
|
+
static VALUE
|
128
|
+
rb_capng_capability_each(VALUE self)
|
129
|
+
{
|
130
|
+
RETURN_ENUMERATOR(self, 0, 0);
|
131
|
+
|
132
|
+
for (int i = 0; capabilityInfoTable[i].name != NULL; i++) {
|
133
|
+
rb_yield_values(2,
|
134
|
+
INT2NUM(capabilityInfoTable[i].code),
|
135
|
+
rb_str_new2(capabilityInfoTable[i].name));
|
136
|
+
}
|
137
|
+
|
138
|
+
return Qnil;
|
139
|
+
}
|
140
|
+
|
120
141
|
void
|
121
142
|
Init_capng_capability(VALUE rb_cCapNG)
|
122
143
|
{
|
@@ -127,6 +148,7 @@ Init_capng_capability(VALUE rb_cCapNG)
|
|
127
148
|
rb_define_method(rb_cCapability, "initialize", rb_capng_capability_initialize, 0);
|
128
149
|
rb_define_method(rb_cCapability, "to_name", rb_capng_capability_to_name, 1);
|
129
150
|
rb_define_method(rb_cCapability, "from_name", rb_capng_capability_from_name, 1);
|
151
|
+
rb_define_method(rb_cCapability, "each", rb_capng_capability_each, 0);
|
130
152
|
|
131
153
|
// Capability constants.
|
132
154
|
|
@@ -0,0 +1,82 @@
|
|
1
|
+
/* capng_c */
|
2
|
+
/* Copyright 2020- Hiroshi Hatake*/
|
3
|
+
/* */
|
4
|
+
/* Licensed under the Apache License, Version 2.0 (the "License"); */
|
5
|
+
/* you may not use this file except in compliance with the License. */
|
6
|
+
/* You may obtain a copy of the License at */
|
7
|
+
/* http://www.apache.org/licenses/LICENSE-2.0 */
|
8
|
+
/* Unless required by applicable law or agreed to in writing, software */
|
9
|
+
/* distributed under the License is distributed on an "AS IS" BASIS, */
|
10
|
+
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
|
11
|
+
/* See the License for the specific language governing permissions and */
|
12
|
+
/* limitations under the License. */
|
13
|
+
|
14
|
+
#include <capng.h>
|
15
|
+
|
16
|
+
CapabilityInfo capabilityInfoTable[] = {
|
17
|
+
{CAP_CHOWN, "chown"},
|
18
|
+
{CAP_DAC_OVERRIDE, "dac_override"},
|
19
|
+
{CAP_DAC_READ_SEARCH, "dac_read_search"},
|
20
|
+
{CAP_FOWNER, "fowner"},
|
21
|
+
{CAP_FSETID, "fsetid"},
|
22
|
+
{CAP_KILL, "kill"},
|
23
|
+
{CAP_SETGID, "setgid"},
|
24
|
+
{CAP_SETUID, "setuid"},
|
25
|
+
{CAP_SETPCAP, "setpcap"},
|
26
|
+
{CAP_LINUX_IMMUTABLE, "linux_immutable"},
|
27
|
+
{CAP_NET_BIND_SERVICE, "net_bind_service"},
|
28
|
+
{CAP_NET_BROADCAST, "net_broadcast"},
|
29
|
+
{CAP_NET_ADMIN, "net_admin"},
|
30
|
+
{CAP_NET_RAW, "net_raw"},
|
31
|
+
{CAP_IPC_LOCK, "ipc_lock"},
|
32
|
+
{CAP_IPC_OWNER, "ipc_owner"},
|
33
|
+
{CAP_SYS_MODULE, "sys_module"},
|
34
|
+
{CAP_SYS_RAWIO, "sys_rawio"},
|
35
|
+
{CAP_SYS_CHROOT, "sys_chroot"},
|
36
|
+
{CAP_SYS_PTRACE, "sys_ptrace"},
|
37
|
+
{CAP_SYS_PACCT, "sys_pacct"},
|
38
|
+
{CAP_SYS_ADMIN, "sys_admin"},
|
39
|
+
{CAP_SYS_BOOT, "sys_boot"},
|
40
|
+
{CAP_SYS_NICE, "sys_nice"},
|
41
|
+
{CAP_SYS_RESOURCE, "sys_resource"},
|
42
|
+
{CAP_SYS_TIME, "sys_time"},
|
43
|
+
{CAP_SYS_TTY_CONFIG, "sys_tty_config"},
|
44
|
+
{CAP_MKNOD, "mknod"},
|
45
|
+
{CAP_LEASE, "lease"},
|
46
|
+
{CAP_AUDIT_WRITE, "audit_write"},
|
47
|
+
{CAP_AUDIT_CONTROL, "audit_control"},
|
48
|
+
#ifdef CAP_SETFCAP
|
49
|
+
{CAP_SETFCAP, "setfcap"},
|
50
|
+
#endif
|
51
|
+
#ifdef CAP_MAC_OVERRIDE
|
52
|
+
{CAP_MAC_OVERRIDE, "mac_override"},
|
53
|
+
#endif
|
54
|
+
#ifdef CAP_MAC_ADMIN
|
55
|
+
{CAP_MAC_ADMIN, "mac_admin"},
|
56
|
+
#endif
|
57
|
+
#ifdef CAP_SYSLOG
|
58
|
+
{CAP_SYSLOG, "syslog"},
|
59
|
+
#endif
|
60
|
+
#ifdef CAP_EPOLLWAKEUP
|
61
|
+
{CAP_EPOLLWAKEUP, "epollwakeup"},
|
62
|
+
#endif
|
63
|
+
#ifdef CAP_WAKE_ALARM
|
64
|
+
{CAP_WAKE_ALARM, "wake_alarm"},
|
65
|
+
#endif
|
66
|
+
#ifdef CAP_BLOCK_SUSPEND
|
67
|
+
{CAP_BLOCK_SUSPEND, "block_suspend"},
|
68
|
+
#endif
|
69
|
+
#ifdef CAP_AUDIT_READ
|
70
|
+
{CAP_AUDIT_READ, "audit_read"},
|
71
|
+
#endif
|
72
|
+
#ifdef CAP_PERFMON
|
73
|
+
{CAP_PERFMON, "perfmon"},
|
74
|
+
#endif
|
75
|
+
#ifdef CAP_BPF
|
76
|
+
{CAP_BPF, "bpf"},
|
77
|
+
#endif
|
78
|
+
#ifdef CAP_CHECKPOINT_RESTORE
|
79
|
+
{CAP_CHECKPOINT_RESTORE, "checkpoint_restore"},
|
80
|
+
#endif
|
81
|
+
{-1, NULL},
|
82
|
+
};
|
data/ext/capng/capng.h
CHANGED
@@ -44,6 +44,13 @@ print_name_to_print_type(char* print_name);
|
|
44
44
|
capng_type_t
|
45
45
|
capability_type_name_to_capability_type(char* capability_name);
|
46
46
|
|
47
|
+
typedef struct {
|
48
|
+
int code;
|
49
|
+
const char* name;
|
50
|
+
} CapabilityInfo;
|
51
|
+
|
52
|
+
extern CapabilityInfo capabilityInfoTable[];
|
53
|
+
|
47
54
|
void Init_capng_capability(VALUE);
|
48
55
|
void Init_capng_enum(VALUE);
|
49
56
|
void Init_capng_enum_action(VALUE);
|
data/lib/capng/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capng_c
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroshi Hatake
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- example/process_capability.rb
|
113
113
|
- example/process_capability_without_root.rb
|
114
114
|
- ext/capng/capability.c
|
115
|
+
- ext/capng/capability_info.c
|
115
116
|
- ext/capng/capng.c
|
116
117
|
- ext/capng/capng.h
|
117
118
|
- ext/capng/enum-action.c
|