??????н??????
xlzh@cmos:~/code/capability$ gcc child.c -o child
xlzh@cmos:~/code/capability$ gcc father.c -o father -lcap
xlzh@cmos:~/code/capability$ sudo setcap cap_dac_override??cap_sys_time+ei child
xlzh@cmos:~/code/capability$ sudo setcap cap_dac_override??cap_sys_time+ip father
/* ??????У?child?????E(effective)I(inheritable)???????????child?????????κ??????? ???ù??(cap_bset????1)
* P'(permitted) = (P(inheritable) & F(inheritable)) | (F(permitted) & cap_bset)  // P'(permitted) = (0x0 & 0x2000002) | (0x0 & ?1)??????0
* P'(effective) = F(effective) ? P'(permitted) : 0                               // P'(effective) = 1 ? P'(permitted) : 0?? ????P'(permitted)????0
* P'(inheritable) = P(inheritable)                                               // P'(inheritable) = 0
* ??н?????????
*/
xlzh@cmos:~/code/capability$ ./child
child Cap data permitted: 0x0?? effective: 0x0?? inheritable 0x0
/* ??????У?child?????E(effective)I(inheritable)???????????child??father?????E(inheritable)??P(permitted)?????? ???ù??
* P'(permitted) = (P(inheritable) & F(inheritable)) | (F(permitted) & cap_bset)  // P'(permitted) = (0x2000002 & 0x2000002) | (0x2000002 & ?1)??????0
* P'(effective) = F(effective) ? P'(permitted) : 0                               // P'(effective) = 1 ? P'(permitted) : 0?? ????P'(permitted)????0x2000002
* P'(inheritable) = P(inheritable)                                               // P'(inheritable) = 0x2000002
* ??н?????????
*/
xlzh@cmos:~/code/capability$ ./father
father Cap data permitted: 0x2000002?? effective: 0x0?? inheritable: 0x2000002
child Cap data permitted: 0x2000002?? effective: 0x2000002?? inheritable 0x2000002
????????????????child????г????????????κ?????????????father?????????????child????г???????????????????????
??????????father??child?????????????cap_dac_override??cap_sys_time?????????????????????г??????????????????????λ????????????????????????ù?????м???
????4????root????????г???
????1????root????????г?????y??????????????P??I?????1
????2????root????????г?????y????E???
????/*???????child???????????I??????????child?????inheritable??0?? ??????????1*/
????xlzh@cmos:~/code/capability$ sudo ./child
????child Cap data permitted: 0xffffffff?? effective: 0xffffffff?? inheritable 0x0
????5?????????ID??仯???????????
????1??????????????Ч???ID??0?仯????0?? ??????е?E????????
????2??????????????Ч???ID???0?仯??0????????е?P?????????E????
????3???????????????????????ID????Ч???ID?????????????ID??0???????Щ??????ЩID????????0????????е??P??E???????????
????4??????????????????ID??0????0????????μ???????E???????????CAP_CHOWN?? CAP_DAC_OVERRIDE??  CAP_DAC_READ_SEARCH??  CAP_FOWNER??  CAP_FSETID??  CAP_LINUX_IMMUTABLE  (since  Linux  2.2.30)??  CAP_MAC_OVERRIDE??  CAP_MKNOD??????????????????ID??0????0???????P?????????????????????E?????С?