├── ossp_individual_aweke-goshu_1600680_a.pdf ├── README.md └── System_call.txt /ossp_individual_aweke-goshu_1600680_a.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1a2b3c4d5e6f7h/Qubes_OS_Installation/HEAD/ossp_individual_aweke-goshu_1600680_a.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This project deals with the installation process and explainig some concepts of Qubes OS. Qubes Os is very important linux disttribution OS because it is mainly designed for security. however installing Qubes OS on virtual machine is not recommended. The resaon Why installing it on virtual machine is not recommended disscused in the decumentation part of the project # Qubes_OS_Installation 2 | -------------------------------------------------------------------------------- /System_call.txt: -------------------------------------------------------------------------------- 1 | //assumes a linux kernel source tree and x86-64 architecture 2 | //Create the system call function //kernel/sys_setid.c 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | Syscall_define1(setuid, uid_t, uid){ 9 | Struct cred *new_creds; 10 | new_creds = prepare_creds(); 11 | If (!new_cred) 12 | 13 | return -ENOMEM; 14 | new_creds->uid.val=uid; 15 | new_creds->euid.val=uid; 16 | new_creds->suid.val=uid; 17 | new_creds->fsuid.val=uid; 18 | return commit_creds(new_creds) ; 19 | } 20 | 21 | Decleare it in include/linux/syscalls.h 22 | asmlinkage long sys_setid(uid_t uid); 23 | //Add it to the syscall table In arch/x86/entery/syscalls/ 24 | Syscall_64.tbl, add: 25 | _NR_setid 548 common setid 26 | //make sure 548 is not already taken -adjust if needed 27 | //Test with a simple program 28 | #include 29 | #include 30 | #include 31 | #define_NR_setid 548 32 | Int main(){ 33 | uid_t uid= 1001; 34 | long result = syscall(__NR_setid, uid); 35 | Printf(“UID changed to %d successfully\n”, uid); 36 | else 37 | Perror(“setid failed”); 38 | return 0; 39 | } 40 | 41 | // this is how system call works 42 | 43 | ` 44 | 45 | --------------------------------------------------------------------------------