所以我意外地运行了chmod -R 0777 /var
,我需要恢复它(更不用说允许 chmod 正确的 ssh 目录,以便我可以重新登录它)。我感觉很麻烦,有人能帮忙吗?越快越好,谢谢。
答案1
有变量
drwxr-xr-x 21 root root 4096 2011 年 4 月 6 日 var
以及我的主机(CentOS 6)上的“*var/**”子文件夹
drwxr-xr-x 6 root root 4096 Apr 2 2011 cache
drwxr-xr-x 2 root root 4096 Sep 3 2009 cvs
drwxr-xr-x 2 root root 4096 Jan 26 2010 db
drwxr-xr-x 3 root root 4096 Mar 15 2011 empty
drwxr-xr-x 3 root root 4096 Mar 15 2011 ftp
drwxr-xr-x 2 root root 4096 Jan 26 2010 games
drwxr-xr-x 21 root root 4096 Apr 6 2011 lib
drwxr-xr-x 2 root root 4096 Jan 26 2010 local
drwxrwxr-x 5 root lock 4096 Apr 5 04:02 lock
drwxr-xr-x 6 root root 4096 Apr 5 04:02 log
lrwxrwxrwx 1 root root 10 Mar 15 2011 mail -> spool/mail
drwxr-xr-x 2 root root 4096 Jan 26 2010 nis
drwxr-xr-x 2 root root 4096 Jan 26 2010 opt
drwxr-xr-x 2 root root 4096 Jan 26 2010 preserve
drwxr-xr-x 14 root root 4096 Feb 2 07:39 run
drwxr-xr-x 7 root root 4096 Mar 15 2011 spool
drwxr-xr-x 4 root root 4096 Apr 9 2011 svn
drwxrwxrwt 4 root root 4096 Jan 31 19:58 tmp
drwxr-xr-x 6 root root 4096 Mar 15 2011 www
drwxr-xr-x 2 root root 4096 Jan 26 2010 yp
答案2
现在,所有文件在所有子目录中都可执行。例如,可以通过和来/var
解决,但很难知道哪些文件一开始应该是可执行的。find
chmod
在我的系统上,下面几个可执行文件/var
是
以...结尾的
- .preinst
- .prerm
- .postinst
- .postrm
在
/var/lib/dpkg/info
,/var/lib/apt-xapian-index/update-lock
/var/lib/shorewall/.restore
/var/lib/shorewall/.restart
/var/lib/shorewall/firewall
/var/lib/shorewall/.start
/var/lib/dkms/nvidia/295.33/build/conftest.sh
如果我必须恢复可执行位之后sudo chmod 777 -R /var
,我可以这样运行
sudo find /var -type f -exec chmod -x {} +
然后手动设置chmod +x
上面列出的文件,但你还会遇到恢复之前完全禁止的文件和目录权限的问题任何人(但需要 root 权限)才能阅读,其中涉及更多文件。
持久的问题是安全问题,但主要是如果有人能够以普通用户身份登录计算机。如果是威胁级别较低的单用户系统,您可能可以继续使用,并将其视为一个教训。如果是其他问题,重新安装将是修复所有问题的最简单方法。
权限是 *nix 上文件处理的核心。彻底清除基本目录树上的所有权限是一项极具破坏性的操作;因此恢复起来也相当困难。