
Как мне установить разрешение, чтобы я мог? Опция «Создать новую папку» неактивна.
Я попробовал это:
sudo chmod -rw /opt/lampp/htdocs
Но это все равно не работает. Когда я добавляю:
sudo chmod -rw 755 /opt/lampp/htdocs,
Там говорится:"755" no such file or directory
решение1
Вы неправильно понимаете, как работают chmod и права доступа к файлам unix.
Вам нужно настроить каталог /opt/lampp/htdocs так, чтобы пользователь, под которым вы вошли, имел разрешение на запись. Вам также нужно убедиться, что то, что вы там пишете, может быть прочитано любым веб-сервером, который использует LAMPP (к сожалению, я не знаком с LAMP).
Сначала вам нужно посмотреть, кому принадлежит /opt/lampp/htdocs:
$ ls -ld /opt/lampp/htdocs
Должно вернуть что-то вроде:
drwxr-xr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs
Первый бит (dwrxr-xr-x) — это права доступа к файлу. «lampp» — владелец каталога, а «www» — группа-владелец каталога. Вам нужно это отметить.
Для начала давайте отсортируем группу. Если группа не "root", то все хорошо и вы можете пропустить этот раздел:
Если это "root", то его нужно будет изменить на что-то более разумное. Давайте создадим новую группу, к которой он будет принадлежать:
$ sudo groupadd www
Затем измените группу в каталоге:
$ sudo chgrp -R www /opt/lampp/htdocs
Теперь вам нужно заставить веб-сервер работать как группа www. Если веб-сервер — Apache, то вам следует проверить файл /etc/apache/httpd.conf и отредактировать настройку «Group» соответствующим образом. Я не знаю настройки для других веб-серверов.
Вот к этому пункту вы бы и перешли, если бы вам не нужно было переключать группу с root на какую-то другую.
Теперь нам нужно заняться разрешениями на каталог. Мы хотим использовать некоторые очень специальные разрешения, называемые битом "setgid".
$ sudo chmod 2775 /opt/lampp/htdocs
$ ls -ld /opt/lampp/htdocs
drwxrwsr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs
Видите ли, разрешения теперь несколько изменились. Давайте объясним это.
- Первая буква — тип файла. В данном случае «d» означает «каталог».
- Следующие три, «rwx», — это разрешения, которые владелец (lampp) имеет на директорию. r = чтение, w = запись и x = просмотр содержимого каталога.
- Следующие три, «rws», обозначают владельца группы (www), но вы заметили, что в этом случае x на самом деле является s — мы вернемся к этому чуть позже.
- Последние три, "rx", для всех остальных. То есть читать и просматривать содержимое каталога. Не писать.
"S" в разрешениях группы называется битом "setgid". Это особое разрешение, которое заставляет любые файлы, созданные в каталоге, наследовать владельца группы из самого каталога. Так что если пользователь "fred" в группе "users" создает там файл, его владельцем будет "fred" в группе "www". Это очень полезно для общей области, где несколько человек читают и пишут одни и те же файлы.
Но пока у вас нет возможности писать в эту область. Почему? Потому что вы не в группе "www". Давайте исправим это сейчас:
$ sudo usermod -aG www blub
Замените «www» на имя группы-владельца каталога /opt/lampp/htdocs, которое вы отметили в начале.
Чтобы изменения вступили в силу, вам придется выйти из системы и войти снова — сведения о вашем членстве в группах считываются при входе в систему.
Как только вы это сделаете, вы внезапно обнаружите, что теперь вы каким-то волшебным образом можете записывать файлы в /opt/lampp/htdocs.
Если в системе есть другие пользователи, которым вы хотите разрешить писать, просто добавьте их в группу www с помощью команды usermod -aD www <username>
.
решение2
Эта простая команда терминала дала мне полные права, htdocs
и я смог начать работу над PHP-проектами.
sudo chmod 777 -R /opt/lampp/htdocs
В ответ на комментарий Мухаммеда было бы лучше использоватьsudo chmod 755 -R /opt/lampp/htdocs
решение3
вы используете ЛИБО +rw, ЛИБО восьмеричные числа, не оба.
Вы пытаетесь удалить права на чтение и запись из каталога 755, а также из /opt/lampp/htdocs.
В любом случае вам не следует использовать xampp — вы можете получить более современную, нативную установку стека Lamp — вы можете установить ее с помощью tasksel.
решение4
Чтобы изменить владельца группы каталога /opt/lampp/htdocs
и его содержимого на группу jade
.
sudo chgrp -R jade /opt/lampp/htdocs
Затем, если вы хотите изменить разрешения (например, предоставить группе jade
право записи), вы обычно используете команду chmod. Например:
sudo chmod -R g+w /opt/lampp/htdocs