Entenda o relacionamento entre sudo, sudoers e sudoers.d
Dica publicada em Linux / Configuração
Entenda o relacionamento entre sudo, sudoers e sudoers.d
Pessoal, utilizo o Ubuntu 12.04 e me deparei com uma situação em que o comando sudo retornou com a informação de que o usuário com o qual eu estava logado não estaria no grupo "sudoers".
Isto aconteceu e não sei exatamente o motivo, talvez por causa da atualização do sistema. Recorri às algumas orientações pela Internet, inclusive tutoriais de ajuda no Viva o Linux.
Como resolver este o problema?
Então, descobri que a partir do sudo versão 1.7.2p1-1, o padrão do arquivo /etc/sudoers havia sido modificado, e que a versão 1.8.5p2-1 estaria com bug (talvez esta seja a versão que eu tenha recebido na atualização).
A alteração inclui um diretório com o nome sudoers.d, e este diretório é relacionado no arquivo "sudoers" na linha 28, como segue:
A linha vem, por padrão, comentada. Ao descomentar esta linha, o sistema forçará o sudo para ler e analisar todos os arquivos no diretório /etc/sudoers.d.
Este diretório não deve terminar com '~' e/ou conter um '.', o que impediria a sua leitura.
Note que deve existir pelo menos um arquivo no diretório /etc/sudoers.d, e todos os arquivos deste diretório devem ter a permissão "0440".
Ou seja, se executado o comando ls -la, as permissões do arquivo aparecerão conforme o exemplo:
-r--r-----
É de suma importância que o diretório e seus arquivos sejam protegidos com a permissão "0440".
Entendi que a ideia é fazer as alterações necessárias para usuários "sudo" neste diretório, não tendo necessidade de alterar o arquivos "/etc/sudoers", mas tudo indica que o bug permanece.
Entretanto, não há necessidade de utilizarmos esse diretório "/etc/sudoers.d", você pode continuar atribuindo as permissões no próprio arquivo /etc/sudoers.
Resolvi meu problema da seguinte forma:
1. Entrei com usuário root, usando:
su - root
2. Digitei a senha de root, editei o arquivo /etc/sudoers, para estes casos utilizo o Nano, mas poderia ser utilizado o Vim ou o Vi e também o GEdit, vai da sua preferência.
3. Incluí no arquivo "/etc/sudoers", abaixo da linha que inicia com "root", o meu "login name", como no exemplo abaixo:
Desta forma, resolvi o caso.
Acredito que não seja somente importante resolver os problemas, mas também entendê-los.
Isto aconteceu e não sei exatamente o motivo, talvez por causa da atualização do sistema. Recorri às algumas orientações pela Internet, inclusive tutoriais de ajuda no Viva o Linux.
Como resolver este o problema?
Então, descobri que a partir do sudo versão 1.7.2p1-1, o padrão do arquivo /etc/sudoers havia sido modificado, e que a versão 1.8.5p2-1 estaria com bug (talvez esta seja a versão que eu tenha recebido na atualização).
A alteração inclui um diretório com o nome sudoers.d, e este diretório é relacionado no arquivo "sudoers" na linha 28, como segue:
# Includedir /etc/sudoers.d
A linha vem, por padrão, comentada. Ao descomentar esta linha, o sistema forçará o sudo para ler e analisar todos os arquivos no diretório /etc/sudoers.d.
Este diretório não deve terminar com '~' e/ou conter um '.', o que impediria a sua leitura.
Note que deve existir pelo menos um arquivo no diretório /etc/sudoers.d, e todos os arquivos deste diretório devem ter a permissão "0440".
Ou seja, se executado o comando ls -la, as permissões do arquivo aparecerão conforme o exemplo:
-r--r-----
É de suma importância que o diretório e seus arquivos sejam protegidos com a permissão "0440".
Entendi que a ideia é fazer as alterações necessárias para usuários "sudo" neste diretório, não tendo necessidade de alterar o arquivos "/etc/sudoers", mas tudo indica que o bug permanece.
Entretanto, não há necessidade de utilizarmos esse diretório "/etc/sudoers.d", você pode continuar atribuindo as permissões no próprio arquivo /etc/sudoers.
Resolvi meu problema da seguinte forma:
1. Entrei com usuário root, usando:
su - root
2. Digitei a senha de root, editei o arquivo /etc/sudoers, para estes casos utilizo o Nano, mas poderia ser utilizado o Vim ou o Vi e também o GEdit, vai da sua preferência.
3. Incluí no arquivo "/etc/sudoers", abaixo da linha que inicia com "root", o meu "login name", como no exemplo abaixo:
root ALL=(ALL:ALL) ALL
login_name ALL=(ALL:ALL) ALL
login_name ALL=(ALL:ALL) ALL
Desta forma, resolvi o caso.
Acredito que não seja somente importante resolver os problemas, mas também entendê-los.