@@ -4817,6 +4817,41 @@ pub const IN_ONLYDIR: u32 = 0x0100_0000;
4817
4817
pub const IN_DONT_FOLLOW : u32 = 0x0200_0000 ;
4818
4818
pub const IN_EXCL_UNLINK : u32 = 0x0400_0000 ;
4819
4819
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
+
4820
4855
// linux/keyctl.h
4821
4856
pub const KEY_SPEC_THREAD_KEYRING : i32 = -1 ;
4822
4857
pub const KEY_SPEC_PROCESS_KEYRING : i32 = -2 ;
0 commit comments