Я случайно набрал sudo chmod -R 777 в /var вместо /var/www

я случайно набралsudo chmod -R 777к/varвместо/var/wwwпоэтому теперь я не могу открыть некоторые приложения, такие как Skype или Ubuntu Software. Есть ли способ исправить это?

4 ответа

если бы ты сделал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 для файлов, которые не требуют выполнения. Таким образом, когда вы настраиваете веб-сервер и получаете ошибки, вы знаете, что у вас есть проблема с конфигурацией, которая, вероятно, связана с неправильной настройкой пользователя/группы.

Если вы действительно бежалиchmod -r 777 /varты должен быть в порядке, потому что-rнедопустимый вариант, и он не рекурсивно обновил бы какие-либо разрешения.

Вы наносили рекурсивный урон, только если бежалиchmod -R 777 ...и особенно если он запущен от имени пользователя root или с помощью sudo.

папки должны быть 755 кроме tmp, crash, metrics и симлинков (обычно 777)

попробуй это:

sudo chmod 755 -R /var

Другие вопросы по тегам