Изменение паролей root с помощью setuid

Как следует из названий цепочек, PREROUTING выполняется сначала при получении пакета и, таким образом, маршрутизируется в зависимости от того, куда он идет (пункт назначения). После применения всех остальных правил маршрутизации цепочка POSTROUTING определит, куда она идет, в зависимости от того, откуда она пришла (источник).

Например, на моем сервере все входящие порты, которые должны быть переадресованы (NAT), определены в цепочке PREROUTING как DNAT , а все пакеты, которые приходят из NAT, интерфейсы, пройти через цепочку POSTROUTING как SNAT , и, следовательно (в данном случае), пройти через цепочку фильтра FORWARD .

1
06.02.2016, 19:26
2 ответа

В своей программе вы, вероятно, не позаботились о том, чтобы для реального и эффективного uid было установлено одно и то же значение. Gids также должны соответствовать gid root. Примерно так:

setuid(geteuid());
setgid(getegid());

См., Например, sue (простая оболочка setuid / setgid).

1
29.04.2021, 00:18

Томас Дики абсолютно прав. Однако не делайте этого. Вместо этого используйте sudo .

Создайте /etc/sudoers.d/change_root_pass

YOURUSERNAME ALL = (ALL) passwd root

(измените ИМЯ ПОЛЬЗОВАТЕЛЯ).

0
29.04.2021, 00:18

Теги

Похожие вопросы