Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 3
0
 def drop(self, *caps):
     for cap in _parse_caps_simple(caps):
         _prctl.prctl(_prctl.PR_CAPBSET_DROP, cap)
Ejemplo n.º 4
0
 def getter(self):
     return bool(_prctl.prctl(_prctl.PR_GET_SECUREBITS) & (1 << bit))
Ejemplo n.º 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)
Ejemplo n.º 6
0
 def getter(self):
     return _prctl.prctl(_prctl.PR_CAPBSET_READ, cap)
Ejemplo n.º 7
0
 def call_prctl(arg=0):
     return _prctl.prctl(option, arg)
Ejemplo n.º 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)