Как настроить сегмент powerline (в частности, для макета $ PS1 оболочки Bash)?

Прошлым летом в три часа ночи я обнаружил, что в Ubuntu 16.04 ping - это SUID-команда, которая может быть вызвана только суперпользователем root

SUID (Set owner User ID up on execution) - это особый тип разрешений, предоставляемых файлу. Обычно в Linux/Unix, когда программа запускается, она наследует разрешения доступа от вошедшего в систему пользователя. SUID определяется как предоставление временных прав пользователю для запуска программы/файла с правами владельца файла, а не пользователя, который его запускает. Проще говоря, при выполнении файла/программы/команды пользователи получают разрешения владельца файла, а также UID и GID владельца.

Обычные пользователи не имеют прав на открытие файлов сокетов и портов. Поэтому в этом файле/команде установлен бит SUID, чтобы тот, кто ее выполнит, получил права владельца (пользователя Root) при выполнении этой команды. Поэтому, когда эта команда начнет выполняться, она унаследует права пользователя root для этого обычного пользователя и откроет необходимые файлы сокетов и порты.

Вот как я решил эту проблему в начале июня 2016 года.

Приложения C# должны запускаться в Linux с помощью mono, поэтому вы должны использовать

Process.Start("mono", "full_path_of_your_exe");

edited Sep 15 '13 at 23:46 ответил Sep 15 '13 at 3:29

Lex Li 30.9k44666

1
08.09.2015, 12:35
0 ответов

Теги

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