Existe uma maneira de fazer isso sobrescrevendo as configurações do PAM (Pluggable Authentication Module) para o serviço sudo. Faça isso com grande risco para a sua máquina - não apenas copie e cole a menos que você entenda o que o comando faz, e sempre mantenha um terminal raiz aberto - teste de teste! - antes de fazer o logout, caso precise voltar e consertar algo.
Eu recomendo ler algumas informações sobre como o PAM funciona para que você saiba o que fazer se ele quebrar. Também recomendo que a maioria dos usuários abordem esse problema de um ângulo diferente (criando uma conta de usuário separada para administração), pois a solução pode ser suscetível a ataques de tabela de hash em sua senha, caso você não tenha definido suas permissões corretamente.
Se você está determinado a prosseguir, você precisará instalar um novo módulo PAM. O pam_pwdfile usa o arquivo de tipo antigo / etc / passwd para autenticação, o que é ótimo para usar senhas diferentes para serviços diferentes. Ele não fornece reconhecimento de conta - você pode criar pares de nome de usuário / senha para usuários que não existem no sistema. Já que vamos usá-lo para o sudo, não importa, pois vamos deixar o sudo checar se a conta existe da maneira usual.
sudo apt-get install libpam-pwdfile
Eu também recomendo pegar um prático editor de arquivos htpasswd. Benjamin Schweizer criou um prático editor em python que funciona bem. Pegue no link e instale sua dependência:
sudo apt-get install python-newt
Gere um arquivo de formato htpasswd usando a ferramenta - sudo python htpasswd_editor sudo.passwd
. Coloque um nome de usuário e senha usando o nome de usuário same que você usará para o sudo - um para cada usuário que o usará. Copie-o para algum lugar seguro (ao testar isso, coloquei em /etc/sudo.passwd) e torne-o ilegível para usuários comuns: chmod 660 /etc/sudo.passwd
as root.
Certifique-se de que o arquivo seja de propriedade root e ilegível para outros usuários. Esta é uma vulnerabilidade, pois o arquivo contém uma senha com hash e, se for legível ou gravável por outros usuários, segurança mal. É por esse motivo que não recomendo esse método em uma máquina que deve ser mantida segura.
Por fim, edite o arquivo /etc/pam.d/sudo
. Adicione a seguinte linha acima das outras @include ...
lines:
auth required pam_pwdfile.so pwdfile /etc/sudo.passwd
Obviamente, substituindo o último argumento pelo caminho para o seu arquivo htpasswd gerado. Comente a próxima linha: #@include common-auth
para se certificar de que está usando o novo método de autenticação.
Palavra de precaução - você precisará editar o arquivo /etc/pam.d/sudo
de um terminal raiz. Não feche isto sem testar! Se você fizer isso, você não poderá fazer login novamente (se tiver quebrado alguma coisa) e terá que inicializar a partir de um disco de recuperação para reparar seu sistema. Teste antes de sair abrindo um novo terminal e tente usar sudo
. Você deve descobrir que ele não funcionará mais com sua senha de login normal, mas, em vez disso, exige a nova senha usada quando você gerou o arquivo passwd. Para atualizar o arquivo, use a ferramenta útil novamente.