AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 432002
Accepted
Yves
Yves
Asked: 2018-03-19 19:17:36 +0800 CST2018-03-19 19:17:36 +0800 CST 2018-03-19 19:17:36 +0800 CST

Depois de renomear /usr acidentalmente, como faço para renomeá-lo?

  • 772

Eu acidentalmente renomeei o diretório /usrpara /usr_bak.

Eu quero mudá-lo de volta, então adiciono o caminho /usr_bak/binpara $PATHpermitir que o sistema encontre o comando sudo.

Mas agora sudo mv /usr_bak /usrme dá o erro:

sudo: error while loading shared libraries: libsudo_util.so.0: cannot open shared object file: No such file or directory

Existe uma maneira de renomear o /usr_bakas /usralém de reinstalar o sistema?

ubuntu sudo
  • 5 5 respostas
  • 11232 Views

5 respostas

  • Voted
  1. Best Answer
    muru
    2018-03-19T19:35:27+08:002018-03-19T19:35:27+08:00

    Como você definiu uma senha para root, use sue busybox, instalado por padrão no Ubuntu. Todas suas bibliotecas necessárias estão em /lib. O Busybox é uma coleção de utilitários vinculados estaticamente, portanto, a falta de bibliotecas não deve ser um problema. Fazer:

    su -c '/bin/busybox mv /usr_bak /usr'
    

    (Embora o próprio Busybox também tenha um suapplet, o /bin/busyboxbinário não é setuid e, portanto, não funciona a menos que seja executado como root.)

    Se você não tiver uma senha de root, provavelmente poderá usar a solução de Gilles aqui usandoLD_LIBRARY_PATH , ou (Gilles diz que isso não funcionará com binários setuid como sudo) reinicie e edite o menu GRUB para inicializar init=/bin/busyboxcomo um parâmetro do kernel e mova a pasta de volta.

    • 112
  2. Basile Starynkevitch
    2018-03-20T03:27:19+08:002018-03-20T03:27:19+08:00

    Além da resposta de muru :

    • você poderia ter usado alguma chave USB de inicialização de resgate para reparar seu sistema; por exemplo, se o seu sistema for algum Debian ou Ubuntu, inicialize a chave USB de instalação no modo de recuperação e faça o mounte mve umount.

    • para ser capaz de reparar mais facilmente tais erros, eu geralmente também instalo um shell estático com vários comandos internos (notavelmente com alguns cp, rm, mv-like builtins) como sash(é empacotado no Debian & Ubuntu, e também disponível como sash-3.8. tar.gz no formulário de origem) e inicialize com init=/bin/sashpassado para o Grub.

    PS: sashtem um pouco de bugs e não é totalmente compatível com Posix, mas ainda é muito útil.

    • 35
  3. Larry
    2018-03-21T20:16:26+08:002018-03-21T20:16:26+08:00

    Acho que a melhor maneira mais segura é reiniciar usando um sistema operacional inicializado por USB, CD ou DVD (Debian, Ubuntu, Suse, etc). Em seguida, monte a unidade que contém os problemas e faça a renomeação.

    Mais seguro do que inicializar em um campo minado com /usr ou /lib efetivamente ausente.

    • 5
  4. geek
    2019-01-22T16:09:57+08:002019-01-22T16:09:57+08:00

    Eu me deparei com um problema semelhante onde renomeei /usr/binpara /usr/bin_bkppara algum teste e não consegui renomear (pois o comando não encontrou o sudono diretório padrão que é /usr/bin) e então fui para o /usr/bin_bkpdiretório manualmente (usando o gerenciador de arquivos ) e a maioria das funções (incluindo a renomeação) no botão direito estão desativadas.

    Então eu tentei o seguinte comando e corrigiu o problema

    $/usr/bin_bkp/sudo mv /usr/bin_bkp/ /usr/bin/
    

    Invoquei o sudo do caminho atual e funcionou, agora tudo voltou ao normal.

    SO: Xubuntu 14.04

    • 0
  5. T.E.D.
    2018-03-21T12:08:51+08:002018-03-21T12:08:51+08:00

    Não posso tentar isso agora (e não tenho certeza se gostaria), mas parece que deve funcionar criar um novo "/usr" como um link físico (não um link flexível) para o seu " /usr_bak, em seguida, exclua o "/usr_bak"

    ln /usr_bak /usr
    rm /usr_bak
    

    O hard link criado por "ln" ( sem argumento "-s") no sistema de arquivos deve tornar os diretórios usr e usr_bak links igualmente válidos para os diretórios em questão. "rm" apenas remove o link que você pediu para remover, não os dois. Como ainda existe um link válido para os conteúdos, eles devem permanecer acessíveis através do link restante em "/usr".

    • -5

relate perguntas

  • Como faço para verificar se estou usando 9.9.9.9 para DNS?

  • Instale várias distribuições Linux em paralelo

  • O OpenVPN auto-compilado não inicia a partir do systemd

  • Execute um único comando como outro usuário; restrições ao sudo

  • Permitir que o usuário execute um comando como root

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve