Diferença entre conta raiz e conta administrativa

4

Se um usuário com privilégio administrativo puder ter todos os poderes de root usando sudo , então qual é a vantagem de ter conta root?

    
por Aaditya Bagga 27.08.2013 / 08:30

2 respostas

3

Desabilitando a raiz

Você precisa ter uma conta root. As únicas coisas que você pode fazer com isso, em termos de "desativá-lo", são:

  1. Bloqueie a conta

    $ sudo passwd -l root
    
  2. Dar root uma senha inutilizável

    $ sudo usermod -p '!' root
    

sudo - como root do usuário

Lembre-se de que quando um usuário com "privilégios administrativos" estiver fazendo uso de sudo , estará executando comandos com privilégios elevados como o usuário root!

Você pode ver que isso é verdade com um simples comando ps :

$ sudo sh -c "ps -eaf | grep [s]udo"
root      2625 26757  0 04:19 pts/10   00:00:00 sudo sh -c ps -eaf | grep [s]udo

O exemplo acima mostra que quando o comando ps é executado, você é efetivamente o usuário root.

Inicializando

Além disso, ao inicializar em um sistema no modo de usuário único (a partir do GRUB), você precisará fazer o login usando a conta root. Normalmente você está passando a palavra single para o GRUB ou o número 1 .

Quais permissões do sudo eu tenho?

Em um sistema em que uma pessoa recebeu sudo permissões, você pode usar o comando sudo -l para ver quais direitos você tem. Estes não são um conjunto completo de direitos de todos, apenas o usuário que está executando o comando.

Por exemplo:

$ sudo -l
Matching Defaults entries for saml on this host:
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
    LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME
    LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User saml may run the following commands on this host:
    (ALL) ALL
    (root) NOPASSWD: /usr/lib/jupiter/scripts/bluetooth, (root) /usr/lib/jupiter/scripts/cpu-control, (root)
    /usr/lib/jupiter/scripts/resolutions, (root) /usr/lib/jupiter/scripts/rotate, (root) /usr/lib/jupiter/scripts/touchpad, (root)
    /usr/lib/jupiter/scripts/vga-out, (root) /usr/lib/jupiter/scripts/wifi

OBSERVAÇÃO: Os comandos aos quais se tem acesso são tudo após a linha, "O usuário pode executar o seguinte ....".

Limitando o acesso via sudo

O Sudo tem um recurso bastante rico para limitar o acesso a comandos específicos, grupos de comandos, usuários específicos e / ou grupos específicos de usuários. No entanto, existem algumas advertências com sudo .

Você pode conceder acesso total a tudo com essa linha em /etc/sudoers :

aaditya      ALL=(ALL)    ALL

Você também pode dar a um usuário o que parece ser um acesso simples a vim de determinados arquivos:

aaditya      ALL=/usr/bin/vim

Isso seria um grande erro, pois muitos editores, como vim , permitem que você invoque um subshell de dentro deles. Assim, o usuário aaditya poderá obter acesso a um shell com permissões de root, mesmo que as permissões sudo não tenham a intenção de que isso aconteça.

    
por 27.08.2013 / 09:07
1

Uma conta administrativa e root não são de forma alguma iguais. Além do que goldilocks e slm mencionaram, você também deve saber que root pode limitar significativamente o que o usuário sudo pode fazer em root (consulte man sudoers para exemplos). Isso é especialmente útil quando um administrador de sistema sênior deseja delegar algumas tarefas de administração a um administrador júnior sem conceder a elas acesso total. Afinal, um usuário com acesso total sudo pode seqüestrar a conta root .

    
por 27.08.2013 / 11:51

Tags