Wie setze ich die Standardberechtigungen für / etc zurück?

8

Ich habe versehentlich Berechtigungsänderungen für vorgenommen /etc. Jetzt gibt es mir die folgende Fehlermeldung:

bash: /etc/bash.bashrc: Permission denied  
I have no name!@chandan-Inspiron-5520:~$ sudo /etc/init.d/apache2 restart  
sudo: unable to stat /etc/sudoers: Permission denied  
sudo: no valid sudoers sources found, quitting  
sudo: unable to initialize policy plugin  
Satish Prasad
quelle
Verwandte: askubuntu.com/questions/115358/…
Kevin Bowen

Antworten:

7

Was ich tun würde :

$ sudo su
chown -R root:root /etc
find /etc -type f -exec chmod 644 {} +
find /etc -type d -exec chmod 755 {} +
chmod 755 /etc/init.d/* /etc/rc.local /etc/network/* /etc/cron.*/*
chmod 400 /etc/ssh/ssh*key

Vielleicht reicht es nicht aus, aber ohne Backup ist das ein guter Anfang.

Gilles Quenot
quelle
5

Als nächsten Schritt nach der Empfehlung von sputnik können Sie Folgendes tun: Führen Sie bei einer Neuinstallation eines Ubuntu-Servers mit derselben Version wie Ihr defekter Server Folgendes aus:

find /etc -type f -executable | awk '{printf("chmod a+x %s\n",$0);}' > setexec.sh

Importieren Sie dann das Skript setexec.sh (mit wget oder ftp) und führen Sie es auf dem defekten Server aus. In Ubuntu 13.04 wurden durch diesen Schritt die meisten Funktionen wiederhergestellt.

Vincent Lalieu
quelle
Hier ist eine Liste von meinem Desktop: askubuntu.com/questions/508359/…
Rinzwind
1
Vielen Dank für diese Idee. Ich habe eine Variante davon verwendet, um alle Berechtigungen zu kopieren, nicht nur das Ausführungsbit:find /etc/ -exec stat -c "chmod %a %n" '{}' \; > setperms.sh
Dave James Miller