我意外地将 sudo chmod -R 777 输入到了 /var 而不是 /var/www

我意外地将 sudo chmod -R 777 输入到了 /var 而不是 /var/www

我无意中输入了 inssudo chmod -R 777/var不是 of,/var/www所以现在我无法打开某些应用程序,例如 Skype 或 Ubuntu 软件。有什么办法可以解决这个问题吗?

答案1

如果你做chmod -r /var什么都没有改变。

  1. -r不是一个有效的选项
  2. /var/是根拥有的目录,因此会显示“权限被拒绝”。

/var/ 的内容需要是:

drwxr-xr-x  2 root root     4096 dec 11 00:00 backups
drwxr-xr-x 20 root root     4096 okt 23 03:04 cache
drwxrwsrwt  2 root whoopsie 4096 dec 15 18:19 crash
drwxr-xr-x 73 root root     4096 okt 22 09:13 lib
drwxrwsr-x  2 root staff    4096 mrt 23  2022 local
lrwxrwxrwx  1 root root        9 apr  3  2022 lock -> /run/lock
drwxrwxr-x 15 root syslog   4096 dec 15 18:19 log
drwxrwsr-x  2 root mail     4096 mrt 30  2022 mail
drwxrwsrwt  2 root whoopsie 4096 mrt 30  2022 metrics
drwxr-xr-x  3 root root     4096 dec  7 17:18 opt
lrwxrwxrwx  1 root root        4 apr  3  2022 run -> /run
drwxr-xr-x 13 root root     4096 apr 18  2022 snap
drwxr-xr-x  7 root root     4096 mrt 30  2022 spool
drwxrwxrwt 12 root root     4096 dec 15 18:42 tmp

将你的与这个进行比较,并进行相应的调整。

drwxr-xr-x = chmod 755
lrwxrwxrwx = chmod 777 
drwxrwsrwt = chmod 2777 and then chmod o+t  (with (s) setuid/setgid permissions (t) and sticky bit) 
drwxrwxrwt = chmod 777 and then chmod o+t  ((t) and sticky bit) 
  • 都需要sudo

如果/var/www包含您自己的网站,您可以执行以下操作:

cd /var/www/
find . -type d -exec chmod 0755 {} \; 
find . -type f -exec chmod 0644 {} \; 

这通常可以解决 99% 的网站权限问题。您可能需要手动调整几个文件。

关于命令:chmod 777 几乎从来都不是正确的解决方案。它仅用于符号链接和特殊目录(例如具有粘性位的 /tmp)。

安全方面的严格模式适用于目录 750(只有用户可以执行,其他人什么都不能做)和不需要执行的文件 640。这样,当您设置网络服务器并收到错误时,您就知道存在配置问题,这可能与错误的用户/组设置有关。

答案2

如果您真的运行了,chmod -r 777 /var那么您应该没问题,因为-r这不是一个有效的选项,并且它不会以递归方式更新任何权限。

仅当您运行时才会造成递归损害chmod -R 777 ...,特别是以 root 身份或使用 sudo 运行时。

答案3

尝试这个:

sudo chmod 755 -R /var

答案4

文件夹应为 755,但 tmp、crash、metrics 和 symlinks 除外(通常为 777)

相关内容