почему suid бит не отменяется после изменения файла

У меня есть файл (s | g) uid world-writable:

ls -lh suid_bin.sh -rwsr-srwx 1 root root 168 mai 23 16:46 suid_bin.sh 

регистрируется с учетной записью пользователя без полномочий root. Я использую vi (или другой редактор) для изменения «suid_bin.sh». После сохранения нового содержимого биты (s | g) uid не заданы:

 ls -lh suid_bin.sh -rwxr-xrwx 1 root root 168 mai 23 16:46 suid_bin.sh 

Зачем? Есть ли способ сохранить (s | g) uid бит после модификации?

One Solution collect form web for “почему suid бит не отменяется после изменения файла”

Разрешения Unix позволяют записывать в файл, если случайно кто-то установит бит группы или мира для записи в файле setuid, но запретит изменение идентификаторов владельца и группы на таких файлах незнакомыми людьми.

Таким образом, после модификации ядро ​​сбрасывает биты setuid / setgid из файла, чтобы гарантировать, что в файл не был записан вредоносный код.

конечно, пользователь root может восстановить бит setuid, но обычный пользователь, если он, по чьей-то ошибке, получил доступ на запись к привилегированному исполняемому файлу, не сможет его использовать.

И, зная части ядра в этой области, я не уверен, что вы можете отключить это без редактирования исходного кода ядра и перекомпиляции.

Обратите внимание, что скрипты setuid в Linux не получают статус setuid после выполнения, потому что на самом деле ядро ​​запускает интерпретатор сценария без состояния setuid, с полным путем к скрипту, поскольку это последний проанализированный аргумент, а затем интерпретатор читает скрипт как обычный файл. Но это может различаться в других системах Unix.

  • Изменение UID файлов в / proc
  • в чем цель setuid включена без исполняемого бита?
  • Как безопасно деактивировать разрешения для поддерева
  • Что означает GID?
  • Как suid iwconfig на Debian wheezy?
  • используя бит SUID для сброса привилегий
  • Как PAM проверяет пароль пользователя в непривилегированных процессах?
  • Пример setuid из Википедии: 4700
  • suid бит в SuSE не влияет на систему ()
  • Почему setuid не работает?
  • Почему FreeBSD требует запуска терминальных программ с правами root?
  • Interesting Posts

    Есть ли недостатки / последствия для добавления запланированных задач непосредственно в / etc / crontab вместо использования команды crontab?

    Каким образом описываются процессы, связанные с трубопроводом, в выводе ps?

    rsync – включить файл верхнего уровня и исключить каталоги

    Выполнять команду в текущей оболочке перед каждой подсказкой

    Процедура анализа, если процесс взломан / взломан

    Блокировать файл от редактирования или удаления

    Что это за новая / работающая файловая система?

    Плавная прокрутка – откуда она взялась?

    Устройство петли ALSA внутри контейнера докера

    Установка файловой системы NFS путем изменения владельца по умолчанию

    Перемещение файла с подстановочным знаком и добавление метки времени к имени файла

    «Невозможно записать cd в / home / user» при поиске сценария

    Как я могу выполнить операцию «копировать, если изменено»?

    wpa_supplicant и инструменты сетевого управления

    $ VAR vs $ {VAR} и цитировать или не указывать

    Linux и Unix - лучшая ОС в мире.