Tag/tag.png

Candidate for Deletion
This article may not be appropriate for this wiki, and may be deleted. More info...

Página em inglês - [RootSudo]

Início

Ubuntu usa o comando sudo para permitir que um utilizador normal tenha privilégios de administrador de sistema. Sendo assim a conta tradicional do UNIX 'root' está desabilitada (Não é possível fazer login como root). Todos os menus gráficos de configuração usam o sudo por defeito. Por exemplo quando o Synaptic ou algum outro programa similar lhe pede uma password, está a pedir-lhe a password da conta do utilizador que está a utilizar e que tenha acesso ao sudo.

O primeiro utilizador criado faz automaticamente parte do grupo admin ou adm, podendo usar o sudo. Qualquer outro utilizador criado daí em diante já não faz parte do grupo, não tendo acesso ao sudo. É recomendado que todos os utilizadores do Ubuntu usem o sudo, já que este apresenta claros benefícios em relação a segurança.

Nota

  • A password é guardada por defeito durante 15 minutos. Após esse tempo, e necessário voltar a digitar a sua password outra vez.
  • Para correr menus gráficos de configuração com o sudo, simplesmente lance a aplicação normalmente através do menu.
  • Para correr uma aplicação usando sudo, que normalmente seja executada como um utilizador sem privilégios, como por exemplo gedit, vá a 'Aplicações' --> 'Executar Aplicação' e digite 'gksudo gedit'. Para utilizadores do Kubuntu, use 'kdesu' em vez de 'gksudo'.

  • Para usar o sudo na linha de comandos, digite sudo antes do comando, como o exemplo em baixo.

sudo chown bob *

Para iniciar uma consola de linha de comandos como root (i.e. uma consola onde pode executar comandos como root) use:

sudo -s

AVISO: sudo -s Não muda as variáveis de ambiente ($HOME, $PATH etc). Pode trazer más consequências. Pode usar em contrapartida sudo -i para iniciar um ambiente root completo.

Adicionando Utilizadores

Warty

No Warty, adicionar um utilizador novo envolve editar o ficheiro /etc/sudoers. Para editar este ficheiro, deve utilizar o comando 'visudo' já que este irá verificar se o ficheiro tem erros antes de sair do mesmo. Para adicinar um utilizador com os mesmos direitos de Administração que o primeiro utilizador, adicione o seguinte texto ao ficheiro '$newuser ALL=(ALL) ALL'. Troque $newuser pelo nome do utilizador.

Hoary

Para adicionar um utilizador ao sudo, adicione o utilizador ao grupo admin ou adm.

Benefícios do sudo

Os benefícios de ter a conta "root" desabilitada inclui o seguinte:

  • Inicialmente a equipa do Ubuntu queria que a instalação fosse o mais simples possível. Ao não activar a conta root, uns quantos passos onde era necessário a intervenção do utilizador durante a instalação foi evitada. (Colin Watson)
  • Ainda mais importante, se a conta "root" tivesse sido activada durante a instalação seria necessário o utilizador lembrar-se ilimitadamente da password que tinha escolhido para a conta root apesar de rarametne a utilizar. As passwords da conta "root" são facilmente esquecidas pelos utilizadores que são novos ao sistema de segurança UNIX. (Matt Zimmerman)
  • Evita o modo "Eu posso fazer tudo" usando sempre a conta root por defeito. Em compensação ao usar o sudo ser-lhe-á sempre pedido a password antes de fazer alterações significantes ao sistema, fazendo com que pense um pouco nas consequências daquilo que está prestes a fazer. Em contrapartida se estiver sempre ligado como "root", você pode simplesmente apagar alguns dos directórios "inúteis" e não se aperceber que está no directório errado a não ser quando fôr muito tarde. Tem sido uma boa prática UNIX durante largos anos usar o comando "su-command-^D" regularmente em vez de estar sempre numa conta "root" -- a não ser que esteja a fazer alguma manutenção mais séria (nesse ponto pode sempre usar o comando "sudo su"). (Jim Cheetham and Andrew Sobala)

  • "sudo" adiciona entradas nos ficheiros log dos comandos executados (em /var/log/auth.log). Se fizer asneira, pode sempre voltar atrás e ver quais os comandos que foram executados. (Andrew Zbikowski)
  • Qualquer cracker ao tentar um ataque brute-force contra a sua máquina saberá que esta tem sempre uma conta root e irá tentar aceder a ela primeiro. O que ele não sabe é os nomes de utilizadores dos outros utilizadores.
  • Permite transferências de direitos de administração, em pouco tempo ou por períodos longos ao adicionar ou remover utilizadores a grupos, isto tudo sem comprometer a conta "root". (Stuart Bishop)

Segurança

  • Ao encorajar a execução de apenas um comando por linha com previlégios de root, ao invés de abrir um terminal como root, sudo:

  • Reduz o tempo passado com a conta root, e assim o risco de inadvertidamete executar comandos como root
  • Providência uma maior auditoria aos comandos executados
  • Ter uma password root separada (o modo tradicional) provide uma camada extra de segurança caso uma password de um utilizador com previlégios de administração seja comprometida.
  • Em qualquer dos casos, se o utilizador com previlégios administrativos (que use sudo ou su para se tornar root) esteja comprometido, o atacante pode geralmente ganhar acesso ao root através de um ataque indirecto

Usos possíveis do modelo "sudo"

Apesar de para sistemas Desktop os beneficios de usar sudo serem grandes, existem possiveis falhas que devem ser apontadas.

  • Some packages from universe are effectively broken (e.g. webmin) or become dangerous to use.
  • Redirecting the output of commands run with sudo can catch new users out (consider "sudo ls > /root/somefile"). Workarounds for this include using "sudo sh -c 'ls > /root/somefile'" (but escaping for this gets very ugly very quickly), using Adverbio, or simply using sudo -s to get a root shell and going from there

    • MattZimmerman: A simple approach which works for most cases is to use dd(1): ls | sudo dd of=/root/somefile

  • In a lot of office environments the ONLY local user on a system is root. All other users are imported using NSS techniques such as nss-ldap. To setup a workstation, or fix it, in the case of a network failure where nss-ldap is broken, root is required. This tends to leave the system unusable unless cracked.
    • JerryHaltom: Perhaps in these cases it neccassitates the creation of a local account: "admin" with sudo to root privledges.

    • LucasVignoliReis: I think this is a good idea, a sudoer system administration account, and normal user accounts for the other users.

Misconceptions

  • Não é o sudo menos seguro que su?

    • O modelo de segurança básica é o mesmo, sendo assim esses dois sistemas partilham a sua principal fraqueza. Qualquer utilizador que use su ou sudo deve ser considerado um utilizador previlegiádo. Caso a conta desse utilizador fique comprometida por um ataque, o atacante pode vir a ganhar os previlégios de root, da próxima vez que o utilizador executar esses comandos. A conta do utilizador é neste caso o elo mais fraco, e deve ser protegido com o mesmo cuidado que a conta root.

      Num nivel mais esotérico, sudo dá-lhe acesso a algumas funcionalidades que encorajam diferentes hábitos de trabalho, que podem causar impactos positivos na segurança do sistema. sudo é normalmente executado para utilização é linha de comando simples (um só comando é executado de cada vez), enquanto su é generalmente usado para abrir uma linha de comandos e executar multiplos comandos. A utilização do sudo reduz a hipótese de uma conta root ficar aberta inadvertidamente, e encoraja o utilizador a utilizar menos os previlégios da conta root.

Activando a conta root

  • Nota: Esta acção não é aconselhável!

Para activar a conta root (i.e. definir uma password) escreva:

sudo passwd root

Desactivar a conta root

  • Nota: Está opção só é valida se já tiver a conta root activada, e a desejar desactivar novamente.

Para desactivar a conta root escreva:

sudo passwd -l root

Isto irá bloquear a conta root.

RootSudoPT (last edited 2017-09-01 23:35:59 by ckimes)