重置/var/www的默认权限

我在尝试更改一些权限后,彻底弄乱了我的/var/www/文件夹。现在我无法在浏览器中打开我的本地主机。

以下是相关文件夹中的权限。

在根目录中,

d---------  14 root root  4096 Jan 16 23:57 var

在变量中,
drwxr-xr-x  2 root     root     4096 Jan 17 04:10 backups
drwxr-xr-x 17 root     root     4096 Jan 17 00:57 cache
drwxrwsrwt  2 root     whoopsie 4096 Jan 17 04:10 crash
drwxr-xr-x 69 root     root     4096 Jan 17 03:35 lib
drwxrwsr-x  2 root     staff    4096 Oct 19 14:44 local
lrwxrwxrwx  1 root     root        9 Jan 16 21:13 lock -> /run/lock
drwxrwxr-x 12 root     syslog   4096 Jan 17 16:31 log
drwxrwsr-x  2 root     mail     4096 Oct 21 21:19 mail
drwxrwsrwt  2 root     whoopsie 4096 Oct 21 21:30 metrics
drwxr-xr-x  2 root     root     4096 Oct 21 21:19 opt
lrwxrwxrwx  1 root     root        4 Jan 16 21:13 run -> /run
drwxr-xr-x  8 root     root     4096 Oct 21 21:27 spool
drwxrwxrwt  5 root     root     4096 Jan 17 17:27 tmp
drw-------  3 www-data www-data 4096 Jan 16 23:57 www

在/var/www/中
drwxrwx--- 3 www-data www-data 4096 Jan 17 00:33 html

在/var/www/html/中。
-rwxrwx--- 1 www-data www-data    20 Jan 17 00:00 info.php
-rwxrwx--- 1 www-data www-data 11321 Jan 16 23:57 index.html
drwxrwx--- 4 www-data www-data  4096 Jan 17 03:01 movie

以下是我执行了一些混乱整个事情的命令。
  199  sudo chmod -R 777 /var/www/html/
  200  sudo chown -R www-data:www-data /var/www
  201  chmod go-rwx /var/www
  202  chmod go-rwx /var/www/html/
  203  sudo chown -R www-data:www-data /var/www/html/
  204  chmod go-rwx /var/www/html/
  205  chmod go+x /var/www/html/
  206  chgrp -R www-data /var/www/html/
  207  hmod -R go-rwx /var/www/html/
  208  chmod -R go-rwx /var/www/html/
  209  chmod -R g+rx /var/www/html/
  210  chmod -R g+rwx /var/www/html/
  224  sudo chmod +x /var
  225  systemctl restart apache2
  230  sudo chmod +r -w -x /var/
  231  sudo chmod /var/ +r -w -x
  232  sudo chmod /var/ -r -w -x
  235  chmod 755 /var/www/
  236  chmod 644 /var/www/*
  237  sudo chgrp www-data /var/www
  238  sudo chmod 775 /var/www
  239  sudo chown -R www-data:www-data /var/www
  240  chmod go-rwx /var/www
  241  chmod go+x /var/www
  242  chgrp -R www-data /var/www
  243  chmod -R go-rwx /var/www
  244  chmod -R g+rx /var/www
  245  chmod -R g+rwx /var/www
  246  chown -R www-data:www-data /var/www/*
  247  chown -R www-data:www-data /var/www/
  248  chmod -R og-r /var/www/html/
  249  chown -R root:root /var/www/
  250  chmod -R 777 /var/www
  253  chmod -R 777 /var/www/html/

有没有办法我可以重置我的权限,这样我就可以再次运行我的服务器了?只是为了开发目的!

第230、231、232行搞砸了很多东西;-) - Rinzwind
那是我在学习时意识到输入sudo命令时所获得的实际权限有多大。说实话,我现在对自己的信任如此之低,以至于我希望root是一个真实存在的人,当我处于新手模式时,他可以说“不行,我不会让你这样做”。 - mystupidstory
1个回答

/var//var/www/是错误的。

sudo chmod 755 /var/    
sudo chmod 755 /var/www/

(需要sudo权限)。修复/var/www/目录和文件内部的问题:
sudo find /var/www/ -type d -exec chmod 755 {} \;
sudo find /var/www/ -type f -exec chmod 644 {} \;

(sudo可能不需要,但这些目录中可能有“root”拥有的文件)目录需要设置可执行权限,因此为755,您可能希望根据偏好将其更改为750、775、770;它允许组和其他人拥有更多/更少的权限)。文件则不需要,因此为644,您可能希望根据偏好将其更改为640、664、660;同样的原因)。

就是这样。

如果您还想重置用户和组设置(如果查看历史记录不需要):

sudo chown -R www-data:www-data /var/www/

据我所知,每次使用chown都需要使用sudo...或者我错了吗? - Byte Commander
不行。这取决于文件当前的情况。他在历史记录中有它,所以它们可能都是www-data:www-data(然后没有变化,所以可能不需要sudo)。但最好还是把它放在那里;-) - Rinzwind
1我很抱歉,但在最后一搏中,我尝试的解决方案为我解决了问题。我创建了一个新的安装,并创建了一个sh文件,在新安装中将/var目录中的所有文件权限设置为相同,然后在我的安装中运行它。我猜这对我起作用,只因为我的安装是全新的且只有很少的额外软件包。我尝试了你的解决方案,但似乎并没有改变新的权限。所以我猜你的解决方案应该也能正常工作 :) - mystupidstory
你能告诉我吗?除了 "755" 之外,当用字母键入时还有哪个选项?"g+w" 和 "755" 是相同的吗?我是指 "sudo chmod g+w"....在哪里可以看到描述哪个数字对应哪个字符的表格? - T.Todua
"g"代表组。"+w"代表添加写入。 - Rinzwind