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