Permitir login como qualquer usuário do grupo por sudoers

2

Gostaria de adicionar uma regra /etc/sudoers para permitir que qualquer usuário do grupo admin faça login como usuário do grupo users .

Exemplo:

No grupo admin , tenho: alan e smith . No grupo users : anna , mike . E outros usuários: stephen , nick .

alan e smith podem fazer isso:

sudo su - anna
sudo su - mike

Mas o não pode fazer isso:

sudo su -
sudo su - root
sudo su - stephen

Eu tentei em vão algo assim:

%admin ALL=(ALL) NOPASSWD:/bin/su - %users

Alguma idéia?

P.S. seria ideal se cumprisse mais uma dependência:

alan também está em users group e smith não pode:

sudo su - alan

porque alan está em admin group.

    
por Krzysztof Szewczyk 06.08.2015 / 15:55

2 respostas

1

Eu não acho que você realmente queira ou precise de su para o seu caso de uso. O que você parece querer é que um determinado grupo de usuários possa assumir arbitrariamente a identidade de qualquer usuário em um outro grupo específico. Você só precisa de sudoers para isso:

%admin ALL=(%users) NOPASSWD:ALL

A regra de sudoers acima significa que todos os usuários no grupo admin podem executar qualquer comando como qualquer usuário no grupo users via sudo -u <user> <command> .

Se você quiser limitar os comandos que os usuários administradores podem executar como outro usuário, você substitui ALL no final por algo mais específico. Veja man sudoers para saber mais sobre isso.

Para obter um shell de login para o usuário do grupo users , em vez de usar su , um administrador poderia ser:

sudo -u anna /bin/bash -il

Uma nota sobre su (man su):

The su command is used to become another user during a login session.

su sempre solicita a senha do usuário que você está registrando, exceto para o caso em que o usuário solicitante é root. sudo su - [user] não solicita uma senha porque você eleva para root (via sudo) e, em seguida, exec su - [user] para iniciar uma nova sessão de login. Mas se você não quiser elevar o sudoer para root, o sudoer precisa saber a senha do usuário que deseja su as, derrotando o propósito de usar sudo em primeiro lugar.

    
por 17.06.2018 / 12:20
0

Você não pode usar os "% users" porque isso significaria um grupo linux, não uma variável sudoers.

Você pode fazer algo como o seguinte:

Cmnd_Alias      SWITCH_USERS = /bin/su - anna, /bin/su - mike
%admin      ALL=(ALL) NOPASSWD: SWITCH_USERS

Se você estiver criando dois grupos admin / users no sistema apenas para esse assunto, convém criar sudoers users Aliases (para que você só tenha que controlar os arquivos sudoers) Na minha opinião pessoal, é melhor usar sudoers opções para sudo e grupos de sistemas para permissões relacionadas a arquivos / dirs (mas isso é minha opinião, não uma obrigação )

O manual do sudo é um pouco difícil de entender em alguns tópicos. Aqui você tem um bom guia (com exemplos) que pode ajudá-lo a editar seu arquivo sudoers: como editar o arquivo sudoers

Acho que o mais útil que você deve ter em mente para o que você está tentando realizar é: se você adicionar um comando completo em sudoers (com todas as opções e parâmetros, ele deve ser executado dessa forma, então, "/ bin / su - "não funciona se você especificar um nome de usuário após o comando (veja meu exemplo) Você pode negar com NOEXEC: um comando que você deseja desautorar por qualquer meio em sudo, e sempre usar" visudo "para editar / etc / sudoers, que verifica a sintaxe.

    
por 06.08.2015 / 17:06