j'ai enlevé le bit setuid du ping binaire et ajouté cap_net_raw+p
à la place comme suit:
$ chmod 755 /bin/ping
$ setcap cap_net_raw+p /bin/ping
Puis je courais ping
dans un terminal et vérifié le/proc/$ PID/état du processus en cours d'exécution d'un autre:
$ ps aux | grep ping
user 5468 0.0 0.0 14948 1792 pts/20 S+ 11:14 0:00 ping www.google.com
user 5471 0.0 0.0 14224 896 pts/2 S+ 11:14 0:00 grep --color=auto ping
$ cat /proc/5468/status | grep Cap
CapInh: 0000000000000000
CapPrm: 0000000000002000
CapEff: 0000000000000000
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
Si ping
est en cours d'exécution est pourquoi CapEff: 0000000000000000
? Ne devrait pas cap_net_raw
être aussi dans l'ensemble efficace? Est-ce que/proc/$ PID/status ne reflète pas le état actuel du thread?
Bonne question, bonne réponse. Bien joué! – hek2mgl