4

Как мне установить разрешение, чтобы я мог? Параметр "Создать новую папку" выделен серым цветом. Я попробовал это: sudo chmod -rw /opt /lampp /htdocs

Но это все еще не работает. Когда я добавляю sudo chmod -rw 755 /opt /lampp /htdocs, он говорит: "755" нет такого файла или каталога

3 ответа3

15

Вы ошибаетесь, как работают разрешения 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", то все хорошо, и вы можете пропустить этот раздел:

Если это "корень", его нужно изменить на что-то более разумное. Давайте создадим новую группу, к которой он будет принадлежать:

$ 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

Вы видите, что разрешения теперь несколько изменились. Давайте объясним это.

  • Первая буква - это тип файла. В этом случае "д" для каталога.
  • Следующие три, "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

1

вы используете ЛИБО + RW ИЛИ восьмеричные, а не оба.

Вы пытаетесь удалить привилегии чтения и записи из каталога с именем 755, а также /opt /lampp /htdocs.

В любом случае, вам не следует использовать xampp - вы можете получить более свежую, оригинальную установку стека ламп - вы можете установить его с помощью tasksel.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .