On Sat, Nov 20, 2021 at 01:39:38PM +0400, Алексей Витальевич Коротков wrote: > Вложил ping.txt от команды > LANG=en_US.UTF-8 ping -c 1 192.168.1.1 > ping.txt 2>&1
Вот это capget({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, NULL) = 0 capget({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=0, permitted=0, +inheritable=0}) = 0 capget({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, NULL) = 0 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=0, permitted=0, +inheritable=0}) = 0 prctl(PR_SET_KEEPCAPS, 1) = 0 getuid() = 1000 setuid(1000) = 0 prctl(PR_SET_KEEPCAPS, 0) = 0 getuid() = 1000 ... socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP) = -1 EACCES (Permission denied) socket(AF_INET, SOCK_RAW, IPPROTO_ICMP) = -1 EPERM (Operation not permitted) совершенно закономерно: видно, что "strace ping ..." запускается не от рута, а под uid/gid=1000/1000), а в таком случае при запуске под strace на применяются capabilities, соответственно capget не выдаёт, а capset не ставят нужную CAP_NET_RAW, в результате не удаётся создать raw socket, необходимый для пинга -- последний вызов socket() выдаёт EPERM. Насколько я понимаю, ping без strace исправно работает под этим uid/gid, хоть и ругается на ipv6. Интересно, давно ли перезагружался компьютер. :) И поскольку говорилось о наличии рядом другого компьютера с рабочей системой, предлагаю сравнить diff-ом выдачу "sysctl -a" с этих компов. Разумеется, отсекая всё что не относится к сети. -- Eugene Berdnikov