Entrei por engano
chsh -s /usr/bin
ao invés de
chsh -s /bin/bash
e agora não consigo fazer login em um shell raiz, como inicio um shell bash como root manualmente?
sudo vipwo trabalho?
Entrei por engano
chsh -s /usr/bin
ao invés de
chsh -s /bin/bash
e agora não consigo fazer login em um shell raiz, como inicio um shell bash como root manualmente?
sudo vipwo trabalho?
Respostas:
Enquanto o root não tem acesso, um usuário no grupo sudo ainda pode executar comandos privilegiados - parece que o erro não está no sudo, mas em outras partes do sudo chshcomando (por exemplo, erro chsh).
Como tal, seu sudo está aparentemente funcionando.
O arquivo passwd pode ser editado com:
sudo vipw
E o shell raiz mudou manualmente.
(primeira linha de /etc/passwdgeralmente)
root:x:0:0:root:/root:/bin/bash
Fom man vipw
Os comandos vipw e vigr editam os arquivos / etc / passwd e / etc / group, respectivamente. Com o sinalizador -s, eles editarão as versões de sombra desses arquivos, / etc / shadow e / etc / gshadow, respectivamente. Os programas definirão os bloqueios apropriados para evitar corrupção de arquivos.
vipwe vigr, obrigado! Eu sempre useisudo vim /etc/passwd
visudo sudo.ws/man/1.8.15/visudo.man.html também, @tac
sudo -e, que executa esse recurso de edição de bloqueio para qualquer edição.
Outra opção, supondo que você tenha acesso a outra conta, é substituir manualmente o shell padrão usando su --shell=/bin/bash:
-s, --shell = SHELL
executa SHELL se / etc / shells permitir
A principal vantagem disso é que ele requer apenas acesso a outra conta, não a outra privilegiada .
Por razões de segurança, logins se textual ou gráfica e utilitários como sue sudoque lhe permitem executar comandos como um usuário diferente todos executar os comandos através do shell do usuário-alvo. Se o shell do usuário de destino não estiver funcional, você verá os resultados :-(
A menos que você tenha um shell raiz ainda funcional sendo executado em algum lugar ou algo como um binário raiz de setuid ou algo que permita contornar isso, reiniciar e corrigir o problema usando um sistema de resgate ou imagem ao vivo é provavelmente a sua melhor aposta.
Inicialize o sistema de recuperação, monte o sistema de arquivos raiz do seu sistema real em algum lugar, digamos /mnt/foo, e edite /mnt/foo/etc/passwdpara corrigir o shell. Salve, desmonte e pronto.
/etc/passwdnão é texto simples? Não vejo isso há pelo menos uma década. Isso ainda é algo em alguns sistemas? Enfim, eu acho que chroot /mnt/foo chsh -s /bin/bashpoderia fazer o truque nesse caso?
Adicione init=/bin/bashà sua linha de comando do kernel (se estiver inicializando com o grub, pressione epara editar a entrada de inicialização) e você terá um shell bash executando como root sem precisar fornecer uma senha. No entanto, seu sistema de arquivos raiz provavelmente ainda será montado como somente leitura, portanto, você precisará remontá-lo primeiro e depois mudar o shell novamente chsh.
sudo usermod -s /bin/bash jdoe
mudará o shell do jdoe para bash. Você pode então sudo egrep jdoe /etc/passwdverificar.