我无意中输入了 inssudo chmod -R 777
而/var
不是 of,/var/www
所以现在我无法打开某些应用程序,例如 Skype 或 Ubuntu 软件。有什么办法可以解决这个问题吗?
答案1
如果你做chmod -r /var
什么都没有改变。
-r
不是一个有效的选项/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)