Права на файлы и папки | REG.RU
Что такое «права на файлы и папки»?
У каждого файла и папки есть 3 атрибута (права) доступа:
- Право на чтение (обозначается буквой r от английского read).
- Право на редактирование и запись в файл (обозначается буквой w от английского write).
- Право на исполнение (запуск) скрипта (обозначается буквой x от английского eXecute). На виртуальном хостинге право на исполнение применимо только к папкам и CGI-скриптам. Для обычных файлов (HTML-страницы, картинки, PHP скрипты и т.п.) право на исполнение не будет применяться.
Для папок эти атрибуты означают:
- Право на чтение позволяет пользователю получить список содержимого папки.
- Право на запись позволяет создавать и удалять файлы в этой папке.
- Право на исполнение разрешает перейти в эту папку.
Существует несколько способов записи прав доступа: буквенная и цифровая записи. Ниже приведены соответствия двух типов записи:
Цифровая запись | Буквенная запись | Права |
---|---|---|
«0» | — | Ничего не разрешено |
1 | —x | Исполнение |
2 | -w- | Запись |
3 | -wx | Запись и исполнение |
4 | r— | Чтение |
5 | r-x | Чтение и исполнение |
6 | rw- | Чтение и запись |
7 | rwx | Чтение, запись и исполнение |
Категории пользователей
Для каждого файла (и папки) существует 3 категории пользователей:
- Владелец файла (папки).
- Группа пользователей, в которую входит владелец.
- Все остальные пользователи.
Права для различных категорий пользователей как в цифровом, так и в буквенном представлении записываются последовательно:
Если используется цифровая запись, первая цифра определяет права владельца, вторая — права группы, третья — права всех остальных пользователей.
При буквенной записи первые три символа определяют права владельца, вторые три определяют права группы, третьи три — права всех остальных пользователей.
Примеры прав доступа в цифровой и буквенной записях и пояснения к ним:
Цифровая | Буквенная | Владелец | Группа | Все остальные |
---|---|---|---|---|
755 | rwxr-xr-x | полный доступ | чтение и исполнение | чтение и исполнение |
644 | rw-r—r— | запись и чтение | только чтение | только чтение |
555 | r-xr-xr-x | чтение и исполнение | чтение и исполнение | чтение и исполнение |
Какие права следует выставлять
Обычно корректными правами для папок являются 755, а для файлов — 644, но возможны исключения, о которых должен знать разработчик сайта. Также информацию по используемым атрибутам доступа можно найти в документации или на тематических форумах используемой вами CMS.
Как изменить права на файлы и папки
Изменить права доступа к файлу или папке можно двумя способами: в панели управления хостингом и по SSH.
Изменение прав в панели управления хостингом
Чтобы изменить права в панели управления хостингом:
-
1.
Войдите в панель управления и следуйте дальнейшим инструкциям в зависимости от используемой панели:
ISPmanager
cPanel
Plesk
-
2.
Перейдите в раздел «Менеджер файлов». Выберите необходимый файл/папку из списка.
-
3.
Кликните по папке или файлу и нажмите Атрибуты:
В открывшемся окне установите необходимые права:
В графе «Изменить дочерние элементы» вы можете изменить владельца и права доступа для файлов и(или) каталогов.
Для сохранения изменений нажмите Ок.
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.
-
2.
В разделе «Файлы» перейдите в Менеджер файлов. Далее перейдите к необходимой папке или файлу:
-
3.
Чтобы изменить права отдельных папки или файла, кликните в столбце «Permissions» и задайте необходимые. Для сохранения нажмите Save:
org/HowToStep»>
4.
Для массового изменения нажмите Выбрать все а затем Права:
В появившемся окне установите необходимые права и нажмите
-
2.
Перейдите в корневой каталог вашего сайта:
-
3.
Возле нужного файла нажмите на иконку меню и выберите пункт Изменить права:
-
4.
В открывшемся окне установите необходимые права и нажмите
Готово, права на файлы/папки будут изменены.
Изменение прав по SSH
Чтобы настроить права доступа к отдельному файлу:
-
1.
Подключитесь по SSH.
-
2.
Выполните команду:
chmod 755 /var/www/file_name
Где /var/www/file_name — полный путь до вашего файла (/полный-путь-до-корневой-папки-сайта/сам-файл).
Готово, права на файлы/папки будут изменены.
Чтобы рекурсивно настроить доступ ко всем папкам и файлам на вашем сайте:
-
1.
Подключитесь по SSH.
-
2.
Выполните команды:
find /dir_name -type d -exec chmod 755 {} \;
find /dir_name -type f -exec chmod 644 {} \;
Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта).
Первая команда изменит права для всех директорий внутри указанной на 755. Вторая — для файлов внутри указанной директории на 644.
Готово, права на файлы/папки будут изменены.
В качестве альтернативного способа вы можете использовать команду, чтобы сначала задать права всем файлам:
chmod -R 644 /dir_name
А затем назначить права 755 только на папки:
find /dir_name -type d -exec chmod 755 {} \;
Где dir_name — полный путь до корневой папки сайта (Как узнать корневую папку сайта).
Как изменить права на файлы и каталоги на хостинге для ASP.NET?
Чтобы изменить права доступа к файлам или каталогам на ASP.NET:
-
1.
Откройте панель управления хостингом.
-
2.
Перейдите в корневой каталог вашего сайта:
org/HowToStep»>
3.
-
4.
В открывшемся окне поставьте галочки напротив нужных групп и прав для этих групп. Кликните ОК:
Возле нужного файла нажмите на иконку меню и выберите пункт Изменить права
Важно: нельзя изменить права на директорию сайта, права можно изменить только на подкаталоги.
Помогла ли вам статья?Да
раз уже
помогла
Получение списка файлов из сетевой папки… | PHPClub
maxi_ch
Новичок
- #1
Добрый день!
Такой вопрос: необходимо прочитать содержимое СЕТЕВОГО каталога (какого-либо общего сетевого ресурса, сетевого диска) средствами php и вывести список файлов и папок на экран. Знаю, что с версии php 4.3 или 4.4 такая возможность появилась, но никак не могу найти мануала по этим нововведениям.
Реализации описанные ниже не работают! (Warning: opendir(file:///o:/111/) [function.opendir]: failed to open dir: Invalid argument in … )
—
$file = ‘file://s:/111/’;
if ($handle = opendir($file)) {
echo «Файлы:n»;
while (false !== ($file = readdir($handle))) {
echo «<a href=»$file»>$file («.($file).»)</a><br>»;
}
}
—
Стоит apache 2.2 + php 5.1.6
tony2001
TeaM PHPClub
- #2
>версии php 4. 3 или 4.4 такая возможность появилась
никакого отношения к PHP и тем более к его версиям это не имеет.
проблема в вашей винде.
maxi_ch
Новичок
- #3
А в чем проблема можно поподробнее?
Кром
Новичок
- #4
Тема обсуждалась уже, поищи по: сетев* диск*
Насколько велик мой сайт? Как получить список всех файлов и каталогов с помощью PHP – Джоди Хаттон
Краткая версия:
Загрузите здесь 4 фантастических скрипта, поместите их в корень вашего сайта, затем перейдите по соответствующим адресам в браузере.
Сохраните отчеты на жестком диске с помощью CTRL+S (CMD+S на Mac).
Не забудьте удалить скрипты с вашего сайта, когда закончите!
Длинная версия:
На днях я решил, что пора перенести свой сайт на другой хостинг. Я запустил свой скрипт резервного копирования и был немного удивлен, увидев, что размер архива составляет 4,5 ГБ.
Очевидно, пора заняться уборкой.
Я вошел в CPanel и нажал «Использование места на диске». Это привело меня на прекрасную страницу, которая показала мне, что каталог /public_html/ имеет размер 15 771,89 МБ … но это не дало мне никакой информации о размере каких-либо каталогов ВНУТРИ этого каталога.
Затем я поковырялся с «cPanel File Manager v3», который позволил мне просматривать файловую структуру, но также не сообщал мне, какие файлы или каталоги на моем веб-сайте занимают больше всего места.
Немного погуглив, я нашел прекрасный скрипт, в котором на одной странице перечислены все файлы и каталоги на моем веб-сайте.
Затем я нашел хорошего парня на Upwork, который помог мне внести некоторые изменения и предоставил несколько разных версий скрипта.
#1: Просмотр размера файла
Первый, небольшая модификация оригинала, показывает размер рядом с каждым файлом.
Пример снимка экрана с результатом:
Загрузите скрипт здесь, поместите его в корень вашего сайта и перейдите по соответствующему адресу в браузере.
Хотя это, безусловно, дает вам хорошо организованный список файлов и каталогов, это не очень полезно, если вы хотите быстро узнать, где находятся самые большие файлы на вашем веб-сайте.
#2: Сортировка по размеру файла
Для второго скрипта я подумал, что было бы полезно взять ту же информацию, но отобразить ее в порядке размера файла (от большего к меньшему).
Пример снимка экрана с результатом:
Это сразу покажет вам, есть ли у вас большие файлы резервных копий, видеофайлы или изображения, которые можно удалить, чтобы освободить место.
Скрипт можно скачать здесь.
#3: Сортировка по размеру каталога
И, наконец, используйте этот удобный сценарий, чтобы узнать, какие каталоги на вашем сайте занимают больше всего места!
Пример снимка экрана с результатом:
Загрузите скрипт здесь.
#4: Сортировка по дате (НОВИНКА!)
Подозреваете, что ваш сайт взломан? Используйте этот скрипт, чтобы составить список всех файлов на вашем веб-сайте и отсортировать их по дате (от самых новых к старым).
Все недавно измененные файлы (в которые могли быть внедрены вредоносные коды) будут перечислены вверху.
Это даже покажет «правильные» даты, которые ваша FTP-программа отображает неправильно!
Если на вашем сайте есть каталог, который часто изменяется, например каталог, созданный подключаемым модулем кэширования, вы можете добавить команду скрытия в адресную строку следующим образом:
http://www.website. com/file_list_4_sort_by_date.php?hide=/wp-content/cache
Если вы хотите скрыть более одной папки, просто добавьте запятую, например:
http://www. website.com/file_list_4_sort_by_date.php?hide=/wp-content/cache,/wp-content/ plugins,/images
Загрузите его здесь.
Загрузить все
Пакет, содержащий все четыре сценария, можно загрузить здесь.
Отказ от ответственности
По понятным причинам я рекомендую удалять эти скрипты с вашего сервера, как только вы их используете.
Я, конечно же, не могу нести ответственность за тех, кто создает список всех файлов и каталогов на всем своем веб-сайте… и оставляет его открытым для общественности. 😉
Наслаждайтесь!
015 Список файлов в каталоге с помощью PHP — Просмотр исходного видеоруководства
Из курса: Посмотреть исходный код
015 Список файлов в каталоге с PHP
“Привет и добро пожаловать в View Source! На этой неделе мы собираемся использовать PHP для создания списка файлов и папки. Это поможет нам улучшить ротатор изображений, который мы создали с помощью подключаемого модуля jQuery Cycle на четвертой неделе. Итак, если вы хотите, чтобы PHP сделал вашу жизнь проще, пришло время просмотреть исходный код. Теперь, как правило, когда мы делаем запрос с сервера, сервер просто захватывает файлы, которые вы запрашиваете, и отдает вам документ, ничего с ним не делая. Мы можем использовать язык, заданный сервером, чтобы улучшить ситуацию, заставив сервер обрабатывать файл до того, как он попадет к пользователю. Сервер может делать все виды интересных вещей. В этом случае у нас есть сервер, автоматически генерирующий код для изображений, когда кто-то бросает фотографии в одну из наших папок. Итак, если мы откроем эту папку с несколькими дополнительными изображениями, и я возьму четвертое изображение прямо здесь и скопирую его в нашу папку, то, когда я обновлю страницу, вы увидите, что вместо трех фотографий мы получим четвертое фото. Я должен убедиться, что я поместил свою мышь за пределы изображения, потому что я добавил переменную, чтобы остановить их вращение, если моя мышь находится на изображении. Итак, как вы можете видеть, эта фотография супа является четвертой фотографией, которую мы только что добавили, нам не нужно было писать какой-либо HTML, HTML был автоматически сгенерирован этой дополнительной страницей, называемой rotator.php, за исключением того, что код точно такой же. так же, как мы использовали раньше. Теперь есть пара проблем с PHP. Один из них заключается в том, что если на вашем локальном компьютере не установлен сервер, ваш компьютер не сможет обрабатывать файлы, поэтому вам придется использовать файлы PHP, которые находятся на сервере. Другая проблема заключается в том, что большинство серверов не будут знать, что они должны обрабатывать файл с помощью PHP, если только имя файла не заканчивается расширением .php. Итак, здесь вы можете увидеть версию этого файла, которая находится на нашей локальной машине, и, как и раньше, наш индексный файл назывался index.html. Когда я загружал файлы на сервер, я изменил имя на index.php. Сервер на самом деле не будет заботиться о том, есть ли у нас файлы в index. php или .html, он просто поймет, что это имя index, и предоставит нам этот файл, когда мы перейдем в этот каталог. У нас также есть сам файл ротатора, который также должен иметь расширение .php, потому что в нем содержится большая часть кода для нашего проекта. Итак, если мы перейдем на страницу Rotator и просто перейдем к rotator.php, мы увидим, что он просто дает нам список изображений. Если мы просмотрим исходный код на этой странице, вы увидите, что он, по сути, записывает список изображений из каталога прямо здесь. Еще одна особенность PHP: когда вы просматриваете исходный код файла PHP, вы никогда не видите исходный код PHP, вы видите результаты кода. Итак, чтобы посмотреть, как выглядит этот файл, нам нужно его открыть. Мы можем сделать это, открыв прямо с сервера. Я собираюсь нажать на этот файл, который я загрузил на свой сервер с помощью программы FTP, и я хочу отредактировать файл, я хочу показать вам, как это настроить. Я собираюсь перейти в меню Cyberduck, выбрать «Настройки» и убедиться, что я нажимаю на эту вкладку «Редактор» и выбираю свой любимый редактор из этого списка. У меня есть эспрессо, так что это хорошо. И когда я это сделаю, вы получите дополнительную маленькую иконку в Cyberduck с надписью «Редактировать». Итак, я собираюсь нажать «Редактировать», и на самом деле это открывает этот файл с сервера. Любые изменения, которые я вношу в этот файл прямо здесь, будут автоматически обновляться на сервере при сохранении файла. Я собираюсь закрыть это окно «Проекты», которое просто открывается дополнительно. Итак, я собираюсь переместить их рядом и показать вам, что здесь происходит. Итак, первое, что я хочу сделать в своем PHP-документе, это убедиться, что я определяю эту область как область PHP-скрипта. Мы делаем это, добавляя вопросительный знак, тег . Это сообщает серверу, что все, что находится между этими тегами, является набором команд PHP. И мы добавляем здесь довольно много разных PHP-команд, поэтому я хочу пройтись по каждой из этих строк. Я собираюсь увеличить это окно, чтобы вы могли видеть вещи немного лучше. И первое, что нам нужно сделать, это указать PHP, из какого каталога мы хотим читать файлы, в данном случае мы будем читать их из каталога изображений. Этот файл rotator.php находится в той же папке, что и каталог изображений, поэтому все, что нам нужно сделать, это сказать, что мы хотим найти папку с именем images в той же папке. Как только мы это сделаем, мы создадим массив с именем filesarray, где мы собираемся хранить все имена всех файлов в этой папке изображений. Затем я хочу прочитать все содержимое каталога, и это то, что делает эта часть кода, в переменную с именем имя файла. Когда у меня есть имя файла каждого из файлов, я могу просмотреть каждое из этих имен файлов и выполнить все внутри этого цикла while. Таким образом, цикл while позволяет нам пройтись по списку вещей, а список вещей, которые мы проходим, — это разные имена файлов, которые он считывает из созданного нами обработчика, указывающего на эту папку с изображениями. Теперь, для каждого из изображений, которые я читал, я хочу убедиться, что они заканчиваются расширением . jpg, таким образом, если я вставлю файл .html, .php или что-то другое, кроме .jpg, это не собираемся прочитать его в нашем списке. Итак, что я здесь делаю, так это проверяю, имеет ли файл расширение .jpg. С левой стороны мы также делаем пару вещей. Мы берем имя файла и убеждаемся, что преобразуем его в строчную версию имени файла. Таким образом, если кто-то введет .JPG, он все равно сначала преобразует его в JPG нижнего регистра, который, когда он проверит прямо здесь, будет работать нормально, потому что они оба будут одинаковыми, независимо от заглавных букв. Следующее, чтобы получить последние четыре буквы имени нашего файла, я хочу убедиться, что я выполняю команду подстроки, которая позволяет мне получить часть строки, и часть строки, которую я хочу get — это последние четыре цифры, что я и делаю, используя это число, -4; 1, 2, 3, 4, таким образом я могу получить только последнюю часть имени каждого файла и сравнить его с .jpg. Следующее, что я делаю, это вызываю другую функцию с именем preg_replace. Это preg_replace — это то, что мы называем проверкой регулярного выражения. Итак, что я хочу сделать, я хочу получить название имени файла. Когда мы получим имя файла, в нем будет все, включая расширение JPEG. Итак, для заголовка нашего документа нам не нужно расширение JPEG, и я выполняю регулярное выражение. Эта конкретная команда preg_replace принимает несколько разных команд, и первая часть команды — это то, что мы называем регулярным выражением, которое говорит ей, как вырезать части имени файла. Итак, что мы здесь делаем, так это проверяем, является ли имя файла словом, за которым следует точка и буквы jpg. Эта конкретная версия этого регулярного выражения гарантирует, что когда мы что-то проверяем, нас не волнует использование заглавных букв. Таким образом, добавляя это i рядом с косой чертой, мы гарантируем, что нам все равно, печатает ли кто-то JPG заглавными буквами или нет. Далее мы хотим сохранить результаты этого поиска в переменной с именем $1, и мы хотим заменить это имя файла. Теперь этот $1 происходит из-за того, что мы окружили это \w, что просто означает слово, а затем этот знак плюс означает более одного слова, и это берет имя файлов и сохраняет его во временной переменной с именем 1 доллар. Результаты которого помещаются в эту переменную заголовка. Итак, все, что мы здесь делаем, это проверяем имена файлов, удаляем часть .jpg и сохраняем результаты в этой переменной title. У нас все еще есть предыдущее имя файла, полное имя файла, поэтому мы помещаем его в массив, который мы сгенерировали прямо здесь, по сути, это тег изображения с именем файла, которое мы получаем при чтении каждого имени файла, а также заголовок что мы получаем из этого регулярного выражения. Итак, когда мы проходим этот цикл прямо здесь, эта программа вставляет тег изображения с именем файла в качестве источника изображения, а также заголовок в качестве того, что входит в атрибут alt каждого изображения. После того, как я просмотрю все изображения, мы обязательно закроем каталог, это просто хорошая практика, а затем после этого мы собираемся выполнить сортировку, чтобы при отображении изображения отображались в алфавитном порядке. Нет гарантии, что файлы будут отображаться в алфавитном порядке, поэтому мы должны это сделать. Затем мы проходим еще один цикл, в котором для каждого элемента массива он временно сохраняет элемент в этой переменной с именем value, а затем просто распечатывает его. Так что это просто распечатает каждую копию этого тега изображения, и это то, что генерирует эту страницу прямо здесь, то есть страницу, которая имеет только список изображений. И теперь, если вы помните из версии сценария jQuery четвертой недели, все, что требовалось для сценария jQuery, — это список изображений для создания ротатора. Итак, я вернусь к той странице, на которой меняются все изображения, и если я взгляну на исходный код этой страницы, вы увидите, что она уже получает версию изображения. Как это получается? Помните, что когда вы смотрите на исходный код страницы PHP, он никогда не покажет вам код, он всегда покажет вам результаты кода. Итак, что я сделал здесь с другим моим файлом, который я перенесу в редактор, я нажму на файл index. php и нажму кнопку «Редактировать», он откроется в браузере, и вы увидите обратите внимание, что этот код выглядит точно так же, как в главе 04, за исключением того, что здесь я использую другую команду, которая вместо вывода списка всех изображений вызывает другую функцию PHP и выводит результаты этой функции в этом функция. Это называется включением php, и это включение вызывает эту функцию rotator.php, которая и является этой функцией, делает всю магию перечисления изображений и помещает их прямо сюда. Объединив эти два скрипта, мы можем создать список изображений для нашего ротатора. Итак, теперь, если мы добавим дополнительные изображения в наш ротатор, я добавлю сюда 05 и 06, как только он завершит их загрузку, все, что нам нужно сделать, это обновить этот браузер, и теперь вместо трех или четырех изображений у нас есть шесть изображений. Мы сделали много вещей всего несколькими строками кода. PHP очень мощный, особенно в сочетании с MySQL. Если вы хотите узнать больше о PHP, обязательно ознакомьтесь с нашей отличной серией, базовым обучением PHP и MySQL, а также другими курсами в онлайн-библиотеке обучения lynda.