Две основные Unix-подобные утилиты sudo и su переписываются в Rust
Две основные Unix-подобные утилиты sudo и su переписываются в Rust. Фото: СС0
Команда из Ferrous Systems и Tweede Golf при поддержке Amazon Web Services повторно реализует sudo и su. Эти утилиты позволяют пользователю выполнять действия с привилегиями другого пользователя (обычно суперпользователя более высокого уровня) без необходимости вводить пароль.
Из сообщения команды разработчиков:
«Sudo впервые был разработан в 1980-х годах. За десятилетия он стал важным инструментом для внесения изменений при минимизации риска для операционной системы. Но поскольку он написан на C, sudo имеет множество уязвимостей, связанных с проблемами безопасности памяти».
Команда sudo полностью соответствует критериям проектов Prossimo для повторной реализации. Она используется почти на каждом сервере и клиенте, находится на критической границе, выполняет критическую функцию и написан на языках, небезопасных для памяти, таких как C и asm. Отследить работу команды можно на GitHub.
Sudo был разработан в 1980 году Роббером Коггесхоллом и Клиффом Спенсером в Государственном университете Нью-Йорка в Буффало на VAX-11/750 под управлением 4.1BSD. Коггесхолл продолжил развитие sudo в Университете Колорадо в Боулдере; в конечном итоге инструмент был обнародован и поддерживался Тоддом С. Миллером. Команда su была частью версии 1 Unix.
Хорошо финансируемые усилия по повторной реализации ключевого аспекта Unix-подобных систем, даже на таком хорошо известном языке, как Rust, почти гарантированно будут положительно приняты сообществом. Несмотря на то, что команда sudo разрабатывалась десятилетиями и реализована почти в каждой системе, она не лишена недостатков. Как сообщалось в 2019 году, некоторые версии sudo были уязвимы для ошибки переполнения буфера, предоставляющей root.
На странице вех группы Prossimo не объясняется, как будет продвигаться более широкое внедрение sudo и su на основе Rust.
Startpack подготовил список облачных сервисов для программистов и разработчиков для повышения эффективности труда, совместной разработке и аналитики качества кода. Системы для планирования спринтов и этапов разработки с распределением полномочий, назначением конкретных задач и сроков. Автоматические решения по тестированию написанного кода и снижения количества ошибок в создаваемое программном обеспечении. Системы контроля версий, а также масштабирования приложений на популярных сетевых платформах.
Статьи по теме
Комментариев пока не было