A expansão do nome de usuário no comando do arquivo sudoers é possível?

0

Eu tenho o seguinte no meu arquivo sudoers:

User_Alias DU=%domain\ users
DU ALL = NOPASSWD:NOEXEC: /sbin/mount.cifs \\* /home/* -o sec=krb5\,* ,/bin/umount -t cifs /home/*

Isso funciona, os usuários que estão no grupo certo e têm um tíquete do Kerberos podem montar seus compartilhamentos em algum lugar da casa deles.

Mas agora, qualquer usuário pode montar compartilhamentos cifs em qualquer diretório em / home (por causa do /home/* ), e assim incomodar seus colegas usuários. / p>

Seria muito melhor se eu pudesse alterar isso para, por exemplo, /home/$username , onde $username é o nome do usuário chamador.

Existe uma maneira de fazer isso dentro do arquivo sudoers?

Caso contrário, terei que criar wrappers para limitar os locais que as pessoas podem montar e desmontar.

    
por Jan van Haarst 19.08.2014 / 12:58

1 resposta

0

Eu estava procurando a mesma resposta, mas não encontrei nada utilizável. AFAIK não é possível, porque o arquivo sudoers é simples e não é interpretado de forma alguma. Portanto, a expansão $-for variáveis é um recurso de shell, mas para o programa sudo é apenas \ $ username. Uma sintaxe especial para declarar uma variável no arquivo sudoers não existe, pelo menos eu não a encontrei até agora.

Uma solução alternativa seria colocar o comando mount em um arquivo de script e colocar esse script no arquivo sudoers. Remova as permissões de gravação para outros usuários (chmod o-w scriptfile) e você deve estar pronto.

    
por 09.03.2015 / 08:23

Tags