странный вывод при вводе буквы C в оболочке (не английский вход)

suid (или sgid) бит заставляет исполняемый файл работать как другой пользователь/группа, чем пользователь, вызывающий его.

Если единственная причина, которую это делает, который должен получить доступ к конкретному файлу, да, Вы могли использовать другие механизмы для создания того файла перезаписываемым. Однако затем пользователь мог сделать что-либо в файл — только в противоположность вещам, которые позволяет Ваша программа.

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

В основном suid программа может осуществить произвольную политику. Полномочия файловой системы не могут. Как пример, Ваша система имеет suid программу /bin/su. Это дает Вам корневую оболочку (например), но только если Вы удовлетворяете политику сначала — обычно, вводите пароль root. Нет никакого способа сделать это с одними только полномочиями.

4
24.04.2014, 15:14
1 ответ

Вы можете увидеть, какие байты составляют символ :

$ od -tx1z

Теперь введите ც и нажмите Ctrl-D (для завершения ввода):

0000000 e1 83 aa                                         >...<
0000003

(это Вывод я получаю в локале UTF-8).

Если Bash интерпретирует, что как ASCII с метатом META может интерпретировать это как Esc Asc ^ C ESC * . Что бы вы ни получили, кажется, достигают Bash как вкладку вкладок .

0
27.01.2020, 21:05

Теги

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