Como gertvdijk sugere (por referência a esta questão ), a reinstalação é quase sempre a melhor e mais fácil maneira de corrigir isso (e a única maneira que você pode ter certeza irá corrigir completamente ), especialmente se você não sabe exatamente onde a permissão foi mudada ou do que foi modificada.
Este método , que privado sugeriu , pode funcionar, e você pode considerar que vale a pena tentar. No entanto, há alguma variação de versão para versão de onde os arquivos e pastas estão e qual deve ser sua propriedade e suas permissões. Além disso, com qualquer solução além da reinstalação, você nunca saberá se há alguns arquivos ou pastas com permissões erradas, o que pode, em algum momento no futuro, causar problemas.
Normalmente, é possível corrigir - ou pelo menos progredir - o problema de sudo
não funcionar (ou seja, problema 1, como você o listou) ao corrigir a propriedade:
pkexec chown root:root /usr/bin/sudo
Em uma situação como a sua, isso é útil principalmente como medida de conveniência para facilitar a execução das tarefas administrativas que você precisa realizar antes de reinstalar. (Ou antes de tentar aplicar alguma solução mais complicada.) Um backup está definitivamente em ordem agora, se seus backups de arquivos importantes (por exemplo, documentos) não estiverem completamente atualizados.
Por fim, lembre-se de que é apenas propriedade e não permissões , que foram modificadas. Então você pode tentar recursivamente mudar a propriedade dos diretórios de volta para a raiz. No entanto, isso também não corrige o problema, porque:
- não está claro se você sabe exatamente quais diretórios foram alterados.
- alguns arquivos não devem ser de propriedade do root, porque eles precisam ser acessados por partes menos privilegiadas do sistema; definir sua propriedade ou permissões de forma muito restritiva poderia quebrar o sistema.
- alguns arquivos podem causar vulnerabilidades de segurança se forem de root. Um executável setuid sempre é executado como o usuário que o possui. Seu sistema pode conter executáveis setuid que sempre devem ser executados como algum usuário privilegiado não ; fazê-los funcionar como root pode ser ruim. Ou alguém pode - intencionalmente ou não - criar um arquivo setuid (sem ter permissões para torná-lo de propriedade do root). Se você fizer isso de root, ele será executado como root, não importa quem o execute. Isso pode ser muito ruim.
Então, se este é um sistema de produção, você deve apenas reinstalar.