Por que não consigo executar o sudo -g?

3
$ 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

Qual é a opção -g que deve ser usada e por que não posso usá-la? RHEL btw.

    
por Steve Bennett 05.04.2012 / 04:32

2 respostas

7

Presumivelmente, porque o seu arquivo sudoers não especifica isso. É a diferença entre duas linhas como estas: a primeira é a padrão, mas a segunda também permite que você execute comandos como qualquer grupo, que é o que você quer.

  • steve ALL = (TODOS) ...

  • steve ALL = (TODOS: TODOS) ...

por 05.04.2012 / 08:25
5

Uma página de homem selvagem aparece!

-g group Normally, sudo sets the primary group to the one specified by the passwd database for the user the command is being run as (by default, root). The -g (group) option causes sudo to run the specified command with the primary group set to group. To specify a gid instead of a group name, use #gid. When running commands as a gid, many shells require that the '#' be escaped with a backslash ('\'). If no -u option is specified, the command will be run as the invoking user (not root). In either case, the primary group will be set to group.

Você provavelmente não pode usá-lo porque não tem permissão para isso. Se eu estiver lendo a página manual sudoers (5), você precisa especificar explicitamente uma lista de grupos para a parte Runas_user da entrada sudoers para poder usar -g :

If only the first is specified, the command may be run as any user in the list but no -g option may be specified.

    
por 05.04.2012 / 08:08