SETUID / SETGID на двоичном исполняемом файле прекратил работать после обновления Ядра Fedora

Я реализовал стук порта, и имейте несколько датчиков в день. Они не получают соединение, таким образом, они уходят. Я регистрирую и сообщаю обо всем доступе к включенным портам.

Я также выполнил fail2ban с Shorewall как брандмауэр для временного помещения в черный список персистентных взломщиков.

Если Вам не нужен доступ в Интернет к SSH, отключают его. Если у Вас есть несколько известных адресов, которые нуждаются в удаленном доступе, ограничивают доступ к тем адресам.

Ограничение доступа к авторизованным ключам может также быть полезным.

1
задан 14 October 2013 в 03:41
1 ответ

Проблема в вашем случае заключается в использовании access () .

На странице man 2 access говорится:

  Проверка выполняется с помощью вызывающего процесса '
 чем эффективные идентификаторы, как это делается при фактической попытке операции
(например, откройте (2)) в файле. Это позволяет упростить программы установки идентификатора пользователя.
 Легко определить полномочия вызывающего пользователя.

При запуске с двоичными файлами setuid вы изменяете только свой эффективный UID, а не свой настоящий. Таким образом, вызов access () всегда завершается ошибкой.

Вам следует удалить access () . В данном случае это излишне, поскольку вы все равно используете команду fopen для открытия файла, также необходимо выполнить такую ​​проверку доступа, а затем выполнить чтение.

1
ответ дан 4 December 2019 в 00:34

Теги

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