$ sudo -u fish -g fish bash
Sorry, user steve is not allowed to execute '/bin/bash' as fish:fish on myserver.
$ sudo -u fish bash
$ groups
fish
Для чего предназначен параметр -g и почему я не могу его использовать? RHEL кстати.
Предположительно потому, что в вашем файле sudoers это не указано. В этом разница между двумя такими строками: первая используется по умолчанию, но вторая также позволяет запускать команды от имени любой группы, что вам и нужно.
Стив ВСЕ = (ВСЕ) ...
Стив ВСЕ = (ВСЕ: ВСЕ) ...
Появляется дикая страница руководства!
-g group Обычно sudo устанавливает в качестве первичной группы группу, указанную в базе данных passwd для пользователя, от имени которого выполняется команда (по умолчанию root). Параметр -g (группа) заставляет sudo запускать указанную команду с основной группой, установленной как group. Чтобы указать gid вместо имени группы, используйте #gid. При запуске команд как gid, многие оболочки требуют, чтобы символ '#' был экранирован обратной косой чертой ('\'). Если опция -u не указана, команда будет запущена от имени вызывающего пользователя (не root). В любом случае основная группа будет установлена на группу.
Вероятно, вы не можете использовать его, потому что у вас нет на это разрешения. Если я читаю sudoers
(5) справочная страница справа, вам нужно явно указать список групп для Runas_user
часть записи sudoers, чтобы иметь возможность использовать -g
:
Если указан только первый, команду можно запускать от имени любого пользователя в списке, но нельзя указывать параметр -g.