Para esclarecer um pouco: Não há "comandos sudo", existem apenas comandos que precisam de privilégios de root para operar corretamente e sudo
é o comando para obtê-los para um comando: sudo
simplesmente executa o comando fornecido como root (leia "sudo" como imperativo frase "superusuário, faça alguma coisa!"). As regras sobre as quais os usuários podem fazer isso estão descritas em /etc/sudoers
. Em uma instalação Raspbian padrão, o usuário padrão "pi" tem suas permissões nesta linha:
pi ALL=(ALL) NOPASSWD: ALL
Significa: "O usuário 'pi' em TODOS os hosts tem permissão para alternar para TODOS os usuários e NÃO precisa digitar sua PASSWD ao usar os comandos ALL (read: any)". (Usei gramática maluca aqui para manter a ordem da linha. Uma observação sobre o motivo de distinguir hosts: dessa maneira, o mesmo arquivo sudoers pode ser distribuído para várias máquinas em uma rede para que o administrador da rede tenha menos trabalho) .
Pode ser que ser capaz de executar comandos usando o sudo sem emitir uma senha de administrador seja o ponto por que você acha perigoso usar o sudo sobre SSH (eu nunca ouvi falar de um problema geral ao fazer isso ... você também pode explique que perigo exatamente você quer dizer?).
Claro que você pode ter vários usuários com permissões diferentes. Mas receio que o uso do sudo ainda seja a melhor maneira de gerenciar essas permissões.
Então, espero que esta pequena receita aqui seja o que você precisa:
$ sudo adduser admin
Isso criará um usuário "admin", solicita uma senha, cria seu diretório pessoal, etc.
$ sudo adduser admin sudo
$ sudo adduser admin adm
Isso colocará o usuário "admin" nos grupos de usuários "sudo" e "adm". E como as permissões são gerenciadas no Linux adicionando usuários a grupos de usuários, isso concede ao usuário "admin" todos os privilégios e permissões que ele precisa. Existe uma linha /etc/sudoers
que permite que qualquer usuário que esteja no grupo de usuários "sudo" execute qualquer comando como root; e esse privilégio é o que precisamos para um usuário administrador (adicioná-lo a "adm" permite que ele leia alguns arquivos de log /var/log
sem usar sudo
e outras coisas). Você ainda precisa usá- sudo
lo quando estiver logado como administrador - mas agora o sudo pede repetidamente a senha do administrador sempre que você não usa o sudo por cerca de cinco minutos.
Agora faça logoff e logon como o usuário "admin". Verifique se
$ sudo apt-get update
$ sudo apt-get upgrade
trabalho. Nesse caso, você pode revogar alguns privilégios do usuário "pi", porque agora você tem certeza de que seu usuário administrador possui os privilégios corretos:
$ sudo deluser pi sudo
$ sudo deluser pi adm
Isso expulsa o usuário "pi" do grupo de usuários "sudo".
$ sudo visudo
Isso iniciará um editor que permite editar /etc/sudoers
. Coloque uma tag de hash ( #
) antes da linha que começa com "pi", comentando-a (ou simplesmente removendo-a). Em seguida, salve e saia do editor, o visudo recarregará as regras de privilégio imediatamente. Agora, o usuário "pi" não tem mais permissão para usar o sudo.
Depois disso, você poderá efetuar logon novamente como o usuário "pi". Se você quiser mudar para o administrador para alguns comandos, use su
("alternar usuário"):
$ su - admin
Se você deseja adicionar mais usuários: use sudo adduser <name>
como acima, e verifique a lista de grupos de usuários que o usuário "pi" possui:
$ groups pi
pi : pi dialout cdrom audio video plugdev games users netdev input
Use sudo adduser <username> <groupname>
para adicionar seu novo usuário a vários desses grupos de usuários, permitindo que ele use áudio, vídeo acelerado, use dispositivos conectáveis, etc. Se não tiver certeza, adicione-o a todos esses grupos de usuários (mas não ao "sudo"!).