suid (или sgid) бит заставляет исполняемый файл работать как другой пользователь/группа, чем пользователь, вызывающий его.
Если единственная причина, которую это делает, который должен получить доступ к конкретному файлу, да, Вы могли использовать другие механизмы для создания того файла перезаписываемым. Однако затем пользователь мог сделать что-либо в файл — только в противоположность вещам, которые позволяет Ваша программа.
У Вас могла, например, быть своя программа, только позволяют добавлять строку в файл, и только в определенном формате. Но если бы Вы просто использовали полномочия файловой системы, то пользователь мог бы удалить строки из файла также. Или вставленные плохо отформатированные строки.
В основном suid программа может осуществить произвольную политику. Полномочия файловой системы не могут. Как пример, Ваша система имеет suid программу /bin/su
. Это дает Вам корневую оболочку (например), но только если Вы удовлетворяете политику сначала — обычно, вводите пароль root. Нет никакого способа сделать это с одними только полномочиями.
Вы можете увидеть, какие байты составляют символ ც
:
$ od -tx1z
Теперь введите ც и нажмите Ctrl-D (для завершения ввода):
0000000 e1 83 aa >...<
0000003
(это Вывод я получаю в локале UTF-8).
Если Bash
интерпретирует, что как ASCII с метатом META может интерпретировать это как Esc Asc ^ C ESC *
. Что бы вы ни получили, кажется, достигают Bash как вкладку вкладок
.