Классический способ управления тем, кто может запустить данный исполняемый файл, foo
выглядит следующим образом:
- С исполняемым файлом
chown
makefoo
принадлежатfoo
группе. - С
chmod
установленными разрешениями, так что только владелец и группа могут выполнять файл. - Назначьте пользователей в группы, как вы хотите.
Это не очень хорошее решение, если вам нужно сделать это для многих (всех?) Исполняемых файлов в вашей системе. Если вы хотите ограничить данного пользователя узким набором возможных команд, вам следует изучить тему ограниченной оболочки .
Я нашел BDSH . Выглядит многообещающе (хотя я никогда не использовал это сам):
bdsh - это оболочка, в которой вы вносите команды в белый список, и только эти команды могут быть выполнены.
Некоторые другие (более новые?) Подобные решения могут существовать.
РЕДАКТИРОВАТЬ: также читайте Как ограничить пользовательские команды в Linux на переполнение стека.