@@ -4817,6 +4817,41 @@ pub const IN_ONLYDIR: u32 = 0x0100_0000;
48174817pub const IN_DONT_FOLLOW : u32 = 0x0200_0000 ;
48184818pub const IN_EXCL_UNLINK : u32 = 0x0400_0000 ;
48194819
4820+ // uapi/linux/securebits.h
4821+ const SECURE_NOROOT : c_int = 0 ;
4822+ const SECURE_NOROOT_LOCKED : c_int = 1 ;
4823+
4824+ pub const SECBIT_NOROOT : c_int = issecure_mask ( SECURE_NOROOT ) ;
4825+ pub const SECBIT_NOROOT_LOCKED : c_int = issecure_mask ( SECURE_NOROOT_LOCKED ) ;
4826+
4827+ const SECURE_NO_SETUID_FIXUP : c_int = 2 ;
4828+ const SECURE_NO_SETUID_FIXUP_LOCKED : c_int = 3 ;
4829+
4830+ pub const SECBIT_NO_SETUID_FIXUP : c_int = issecure_mask ( SECURE_NO_SETUID_FIXUP ) ;
4831+ pub const SECBIT_NO_SETUID_FIXUP_LOCKED : c_int = issecure_mask ( SECURE_NO_SETUID_FIXUP_LOCKED ) ;
4832+
4833+ const SECURE_KEEP_CAPS : c_int = 4 ;
4834+ const SECURE_KEEP_CAPS_LOCKED : c_int = 5 ;
4835+
4836+ pub const SECBIT_KEEP_CAPS : c_int = issecure_mask ( SECURE_KEEP_CAPS ) ;
4837+ pub const SECBIT_KEEP_CAPS_LOCKED : c_int = issecure_mask ( SECURE_KEEP_CAPS_LOCKED ) ;
4838+
4839+ const SECURE_NO_CAP_AMBIENT_RAISE : c_int = 6 ;
4840+ const SECURE_NO_CAP_AMBIENT_RAISE_LOCKED : c_int = 7 ;
4841+
4842+ pub const SECBIT_NO_CAP_AMBIENT_RAISE : c_int = issecure_mask ( SECURE_NO_CAP_AMBIENT_RAISE ) ;
4843+ pub const SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED : c_int =
4844+ issecure_mask ( SECURE_NO_CAP_AMBIENT_RAISE_LOCKED ) ;
4845+
4846+ pub const SECUREBITS_DEFAULT : c_int = 0x00000000 ;
4847+ pub const SECURE_ALL_BITS : c_int =
4848+ SECBIT_NOROOT | SECBIT_NO_SETUID_FIXUP | SECBIT_KEEP_CAPS | SECBIT_NO_CAP_AMBIENT_RAISE ;
4849+ pub const SECURE_ALL_LOCKS : c_int = SECURE_ALL_BITS << 1 ;
4850+
4851+ const fn issecure_mask ( x : c_int ) -> c_int {
4852+ 1 << x
4853+ }
4854+
48204855// linux/keyctl.h
48214856pub const KEY_SPEC_THREAD_KEYRING : i32 = -1 ;
48224857pub const KEY_SPEC_PROCESS_KEYRING : i32 = -2 ;
0 commit comments