Пример #1
0
 def setter(self, value):
     bits = _prctl.prctl(_prctl.PR_GET_SECUREBITS)
     if value:
         bits |= bit
     else:
         bits &= ~(bit)
     _prctl.prctl(_prctl.PR_SET_SECUREBITS, bits)
Пример #2
0
 def limit(self, *caps):
     for cap in [x for x in ALL_CAPS if x not in _parse_caps_simple(caps)]:
         _prctl.prctl(_prctl.PR_CAPBSET_DROP, cap)
Пример #3
0
 def drop(self, *caps):
     for cap in _parse_caps_simple(caps):
         _prctl.prctl(_prctl.PR_CAPBSET_DROP, cap)
Пример #4
0
 def getter(self):
     return bool(_prctl.prctl(_prctl.PR_GET_SECUREBITS) & (1 << bit))
Пример #5
0
 def setter(self, value):
     if value:
         raise ValueError("Can only drop capabilities from the bounding set, not add new ones")
     _prctl.prctl(_prctl.PR_CAPBSET_DROP, cap)
Пример #6
0
 def getter(self):
     return _prctl.prctl(_prctl.PR_CAPBSET_READ, cap)
Пример #7
0
 def call_prctl(arg=0):
     return _prctl.prctl(option, arg)
Пример #8
0
 def call_prctl(arg=None, arg2=None):
     if arg == None:
         return _prctl.prctl(option)
     if arg2 == None:
         return _prctl.prctl(option, arg)
     return _prctl.prctl(option, arg, arg2)