[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Что-то странное произошло с сетью



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


Reply to: