Configurar SUDOERS

Iniciado por WilsonBom, 12 de Abril de 2016, 09:37

tópico anterior - próximo tópico

WilsonBom

Na configuração do "SUDOERS", de que forma o comando "fulano ALL=(ALL) NOPASSWD: ALL" afeta a segurança do Linux ?

Atualmente, utilizo desta forma:

fulano ALL=NOPASSWD:/bin/chown, /bin/chgrp,/bin/mv...

O inconveniente desta forma, é que preciso colocar os comandos um a um.





druidaobelix

#1
No geral o parâmetro sudoers NOPASSWD não é uma boa ideia e não deve ser usado.
Da mesma forma a global flag targetpw e !authenticate.

Ainda assim, NOPASSWD pode ser útil para executar determinado script que pede sudo, caso em que é recomendado o uso do parâmetro somente para os comandos estritamente necessários.

Nada obstante, segurança depende sempre do contexto.
Se tenho um computador em que não há nele absolutamente nada de importante, nada que não possa ser bisbilhotado ou apagado, então realmente tanto faz.
Uma determinada máquina pode ser usada, por exemplo, apenas para acesso recreativo à internet, sem maiores compromissos, sem armazenar nada de relevante, sem acessar a partir dele nenhum login (tipicamente rede social). Nesse caso não fará nenhuma diferença ser ou não hackeado, não é mesmo?
Daí que, sem paranóias, segurança sempre depende do contexto.

Obviamente já não se pode usar o mesmo raciocínio em uma máquina a partir da qual se faz acesso bancário, não é mesmo?


www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

#2
Apenas para ilustrar, pois talvez não tenha ficado muito claro para eventuais leitores menos familiarizados com isso, um exemplo simples onde um NOPASSWD pode ser útil na execução de um script.

Um ícone no desktop de uma instalação Lubuntu em sdb6 chama um script de nome "abrenotas-sdb5.sh" que está em /home/user que por sua vez chama o arquivo texto de nome "notas" que se encontra em sdb5 (portanto uma partição diferente), para isso evidentemente fazendo a montagem da partição sdb5.
A montagem de uma partição pede sudo, então aí é que entra o NOPASSWD no sudoers.

Obs:
# script instalado no Lubuntu 14.04 em sdb6 para abrir um arquivo notas em sdb5
# em sdb5 é Ubuntu Gnome 14.04
# o número grande aí embaixo é o identificador específico do disco (=partição)
#o identificador específico é conhecido como uuid
#uuid quer dizer  universally unique identifier
#ao fechar o arquivo notas a partição é automaticamente desmontada

O arquivo de ícone para ser clicado:


[Desktop Entry]
Name=Abrenotas-sdb5-gnome
Exec=sudo /home/user/abrenotas-sdb5.sh quit
Icon=/caminho/imagem
Terminal=false
Type=Application


O script "abrenotas-sdb5.sh"


#!/bin/bash

mount -U 282da617-eaf2-44d1-bbc4-b4fc5597d5c5 /home/user/sdb5gnome/

leafpad /home/user/sdb5gnome/home/user/"Área de Trabalho"/notas

umount /dev/sdb5


Para que o comando mount acima possa ser executado no script o sudoers precisa autorizar o usuário (user qualquer), constando:

user   nomecomputer = NOPASSWD: /home/user/abrenotas-sdb5.sh

Como se vê, NOPASSWD está especificamente autorizando a execução do script "abrenotas-sdb5.sh"

Esse é um uso típico adequado do NOPASSWD
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

Em tempo, apenas uma pequena correção: para ser rigoroso e observando as próprias instruções do sudoers, ao invés de alterar diretamente o arquivo /etc/sudoers, melhor seria adicionar conteúdo local em /etc/sudoers.d/ o que não ficou evidente no exemplo ilustrado, mas é, digamos assim, a recomendação oficial da boa técnica.
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.