Я пытался удалить права на запись для всего каталога и использовал неверную команду:
chmod 644 -r sites/default
Я хотел напечатать
chmod -R 644 sites/default
Результат был такой:
chmod: cannot access `644': No such file or directory
$ ls -als sites
total 24
4 drwxr-xr-x 5 user group 4096 Jan 11 10:54 .
4 drwxrwxr-x 14 user group 4096 Jan 11 10:11 ..
4 drwxr-xr-x 4 user group 4096 Jan 5 01:25 all
4 d-w------- 3 user group 4096 Jan 11 10:43 default
4 -rw-r--r-- 1 user group 1849 Apr 15 2010 example.sites.php
Я исправил разрешения для папки по умолчанию с помощью $ chmod 644 sites / default. Но следующий ls показывает все файлы с красным фоном и вопросительными знаками. Я не могу получить доступ к файлам, если не являюсь пользователем root.
$ ls -als sites/default
total 0
? ?--------- ? ? ? ? ? .
? ?--------- ? ? ? ? ? ..
? ?--------- ? ? ? ? ? default.settings.php
? ?--------- ? ? ? ? ? files
? ?--------- ? ? ? ? ? settings.php
Когда я вхожу в систему как root, я могу редактировать все файлы, и их разрешения отображаются правильно. Я не знаю, как исправить ущерб, нанесенный использованием -r с chmod вместо -R.
Какие-либо предложения?
Сначала сделайте следующее:
chmod 755 sites/default
Результат, который вы видите, связан с тем, что у вас нет разрешения на выполнение в каталоге:
$ mkdir -p foo/bar
$ touch foo/bar/a foo/bar/b foo/bar/c
$ ls -l foo
total 4
drwxr-xr-x 2 thedward thedward 4096 2011-01-11 10:28 bar
$ ls -l foo/bar
total 0
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 a
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 b
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 c
$ chmod 644 foo/bar
$ ls -l foo/bar
total 0
-????????? ? ? ? ? ? a
-????????? ? ? ? ? ? b
-????????? ? ? ? ? ? c
$ chmod 755 foo/bar
$ ls -l foo/bar
total 0
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 a
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 b
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 c
Почему бы не запустить ту же команду еще раз с соответствующими разрешениями, а затем применить желаемые разрешения к сайтам / по умолчанию?