Não faça isso ... você pode dar a senha do root ou executar sudo passwd root
(isso assume que o sudo está configurado para usar a senha do usuário ou não, e que passwd é um comando que o sudo tem autorizado a ser executado por esse usuário).
Por favor, não pergunte porquê, mas é possível fazê-lo?
p / s: Eu sei que não é uma coisa boa, vamos apenas dizer que alguém da alta gerência que é analfabeto de computador quer algum tipo de controle pelo servidor.
Não faça isso ... você pode dar a senha do root ou executar sudo passwd root
(isso assume que o sudo está configurado para usar a senha do usuário ou não, e que passwd é um comando que o sudo tem autorizado a ser executado por esse usuário).
sudo
é o canivete suíço de permissões personalizadas. Você poderia perguntar ao usuário
para executar
sudo /usr/bin/passwd root
Para ver como isso pode ser ativado, aqui está um exemplo relacionado da página man do sudoers (5).
pete HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
The user pete is allowed to change anyone's password except for root on the
HPPA machines. Note that this assumes passwd(1) does not take multiple
usernames on the command line.
Você terá que inverter a lógica para alcançar seus objetivos, é claro. Então, você executaria o visudo
e adicionaria uma linha como
user ALL = /usr/bin/passwd root
para /etc/sudoers
.
Talvez você possa adicionar essa linha ao arquivo sudoer (usando visudo
), substituindo phunehehe
pelo nome de usuário.
phunehehe localhost = NOPASSWD: /usr/bin/passwd
Eu não sei se isso quebra sua condição de "usuário normal", porque depois disso ele tem tanto poder.
EDIT: como por comentário do xenoterracide:)
Ele não pode usar o nível 1 para alterar a senha do root?
O que tenho em mente é
A desvantagem óbvia desse procedimento é que a máquina deve ser reinicializada e, enquanto estiver no nível de execução 1, ela estará off-line.
Por favor, mencione as falhas que você encontra neste procedimento.
Se você não confia no proprietário da conta raiz, provavelmente não há como impedir que o usuário root remova essa permissão especial. Se você confiar no usuário root, basta perguntar a ele a senha atual.
Se o seu sistema usasse pam_tcb (tcb - a alternativa para / etc / shadow) (e, portanto, havia a senha dos usuários arquivos por usuário), você também pode obter o que deseja gerenciando permissões e grupos de arquivos (por exemplo, adicione esse usuário ao grupo que você possui o arquivo de senha do root).
Neste caso, não vejo diferenças principais nos resultados em comparação com a sudo
-solution (se você está pronto para confiar em sudo
, é claro), porque de qualquer maneira você está dando o mais alto privilégio para esse usuário.
Mas em outros casos, pam_tcb
oferece mais flexibilidade e segurança: primeiro, você não deve confiar em sudo
e passwd
, pois não permitirá que o usuário explore os privilégios de maneira indesejada; segundo, menos privilégios devem ser dados aos usuários para obter certas configurações similares (e nenhum programa setUID-root é necessário) - veja, por exemplo, a questão para algo similar: Redefinir a senha de outro usuário sem raiz
.
Se você confiar nesse usuário para que ele tenha permissão para alterar a senha do root, deve ser seguro fornecer a ele a senha atual em primeiro lugar.
Se esse usuário tiver acesso ao sudo, sudo passwd root doa o trabalho. Se não tivermos acesso ao sudo, ele solicitará a senha novamente. Se soubermos a senha, o trabalho pode ser feito.
Tags command-line password security