如何重置/ etc的默认权限?

我错误地对/etc进行了许可更改。 现在它给了我以下错误消息:

 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 

我会怎么做:

 $ 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 

也许这还不够,但没有任何备份,这是一个良好的开端。

作为sputnik推荐之后的下一步,您可以执行以下操作:在全新安装的ubuntu服务器上,使用与您的损坏版本相同的版本,运行以下命令:

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

然后导入脚本setexec.sh(使用wget或ftp)并在损坏的服务器上执行它。 在ubuntu 13.04上,这一步恢复了大部分function。

 gksudo chown -R root:root /etc/ gksudo chmod -R u+x /etc/ gksudo chmod -R a+r /etc/ 

应该管用。 这将为/ etc /中的所有内容提供读取和执行权限。 gksudo不依赖于sudoers文件来像普通的sudo一样工作。 这将为您提供一个工作点,让其他一切回来。