Hello !
Depuis le 2.6.8, il faut avoir cap_sys_rawio pour envoyer des commandes raw scsi ( ce qui est logique somme tout ). Mais comme pas mal d'application user-space s'ammusent à balancer des commandes raw scsi à tout va, ce nouveau kernel fou un peux la zone.
Heureusement, certaines peuvent êtres setuid-root et patché afin de droper tous les droits sauf cap_sys_rawio (et ce, dès les premières lignes de main(), donc pas de trou de sécu ) , malheureusement d'autres ne peuvent pas être setuid root ( toutes les applis utilisant les lib kde, ou gtk ).
Etant donné que cap_setpcap est automatiquement dropée par init et ne peux pas être changée ( sauf par un thread du kernel, mais bon ... ), et que linux ne supporte pas les capability sur le système de fichier ( donc les hineritables sont totalement innutiles ), *comment* lancer un programme avec uniquement cap_sys_rawio sans qu'il soit suid-root ( je veux bien le patcher et/ou le lancer par un wrapper )
Mes seulent tentatives se sont soldée par un processus qui a cap_sys_rawio comme hineritable, mais qui n'as rien dans effective ou allowed ....
# En C :
Posté par CoinKoin . Évalué à 3.
[^] # Re: En C :
Posté par couriousous . Évalué à 2.
Non, désolé, mais ca ne marchera pas.
car si l'application que tu lance n'est pas setuid root, toutes les capability seront remise à 0 ( sauf les héritables).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.