我意外地运行了sudo chmod -R g+rw /var
而不是sudo chmod -R g+rw /var/www
。这意味着对于每个文件,组所有者现在具有明确的读写访问权限。
我已经看到了一个例子尝试修复chown -R www-data:www-data /var
但这是一个稍微严重一点的问题,实际上并不适用于此。此外,给出的帮助并没有真正帮助我将组权限设置恢复为/var
。
有没有简单的方法可以将组权限恢复为默认值?您建议我现在做什么?如果可能的话,我真的想避免重新安装。
// 编辑:我重新安装了 Ubuntu。感谢您的帮助。
答案1
/var
被各种进程用来写入锁文件、缓存、pid 文件、日志文件等。某些文件/子目录需要一种权限/所有权,有些则需要不同的权限/所有权。
我不敢告诉你你不能只用一个命令来解决你的问题/var
(除非您拥有保留所有权限和所有权的备份)。
为了帮助您理解这一挑战,以下是我的打印件/var
:
drwxr-xr-x 2 root root 4096 mar 15 21:36 backups
drwxr-xr-x 29 root root 4096 mar 4 10:53 cache
drwxrwsrwt 2 root whoopsie 4096 fév 6 20:21 crash
drwxr-xr-x 2 root root 12288 oct 27 10:48 games
drwxr-xr-x 98 root root 4096 mar 4 11:40 lib
drwxrwsr-x 2 root staff 4096 oct 20 2009 local
lrwxrwxrwx 1 root root 9 mai 31 2012 lock -> /run/lock
drwxr-xr-x 27 root root 12288 mar 20 07:44 log
drwxrwsrwt 2 root mail 4096 jan 29 2013 mail
drwxrwsrwt 2 root whoopsie 4096 mai 12 2013 metrics
drwxr-xr-x 3 root root 4096 oct 11 2011 opt
lrwxrwxrwx 1 root root 4 oct 26 22:52 run -> /run
drwxr-xr-x 11 root root 4096 mai 12 2013 spool
drwxrwxrwt 5 root root 4096 mar 20 07:52 tmp
drwx------ 3 root bin 4096 mar 9 12:13 webmin
drwxr-xr-x 6 benoit root 4096 oct 31 21:22 www
您会注意到其中一些目录需要setuid
(权限中的 s 标志 - sudo chmod g+s /var/metrics
)。
tmp
将带有粘滞位(sudo chmod 1777 /var/tmp
)
和你仍然需要进入每个目录!
顺便说一句,将整个目录的所有权设置/var
为组具有读写权限不是一个好主意。这意味着,如果 Web 服务器配置不当,黑客就有可能读写整个/var
目录。请记住,/var/lib
如果您使用它,您将在下面找到 MySQL、Postgres 等的数据文件。
如果您想在不重新安装系统的情况下修复权限和所有权,您必须在其他地方第二次安装 Ubuntu/var
并检查(ls -lR /var
)的具体权限和所有权