Я сражаюсь с сервером Apache в течение 2 дней, пытаясь понять, почему эта вещь препятствует доступу к серверу. Проверьте настройки:
Разрешения на файл во всем подкаталоге, назначаемом chown -R www-data: www-data phreebooks:
Как только я переустановил веб-сервер, я получил «it works» index.html.
Но когда я пытаюсь запустить скрипт установки на billing.webserver.com/install/install.php, я получаю:
Я попытался создать тестовый файл test.php в каталоге / var / www / phreebooks. Это позволило мне получить доступ к файлу, но когда я переместил его в любой подкаталог, он дает ошибку, выше, доступ запрещен.
Я попытался полностью отключить сервер Apache, используя apt-get purge [apache packages]. Что все было удалено, а затем переустановлено. Это не имеет никакого эффекта. Раньше у меня никогда не было этой проблемы с сервером Apache. Пожалуйста, дайте мне знать, если вам нужна более подробная информация .
В предыдущей статье мы изучили как создавать и настраивать учетные записи пользователей, а также как работать с группами. В данном руководстве мы изучим основы работы с правами доступа.
Разграничение прав доступа поможет обеспечить максимальную безопасность ваших данных, будь то персональный компьютер либо сайт на виртуальном сервере Vscale под управлением ОС Linux.
Требования
- сервер с Ubuntu 16.04
- Пользователь с sudo-правами
Все пользователи объединяются в группы и идентифицируются по номеру. Чтобы узнать свой UID и GID, то есть уникальный номер пользователя и номер группы, к которой принадлежит пользователь, необходимо ввести команду id, результат должен выглядеть следующим образом:
Просмотреть текущие права доступа к файлам Linux или каталогу можно по команде:
ls -l /etc
Результат выполнения команды выглядит следующим образом:
Параметры результата обозначают следующие параметры:
drwxr-xr-x 4 testk testk 4096 Oct 28 11:53 testk формат владелец группа размер_файла дата_последнего_изменения имя_файла
, где drwxr-xr-x — символьное обозначение прав доступа к файлам Linux для разных групп пользователей, должно состоять из 10 символов drwxrwxrwx (соответствует 4 классам):
- Первый символ обозначает тип объекта: «—» означает обычный файл, «d» означает папку.
- Три следующих символа rwx означают права доступа владельца файла.
- Далее следует триада rwx означают права доступа группы.
- Последние 3 символа rwx означают права доступа остальных.
Прочерк (-) на месте одного из этих символов указывает на то, что соответствующее разрешение недоступно для соответствующего класса.
Порядок классов является одинаковым во всех дистрибутивах Linux.
Например, триада вида “r—” означает, что файл доступен «только для чтения».
Символ r — это сокращение от слова Read (Чтение).
Для обычного файла это разрешение на чтение, позволяет пользователю просматривать содержимое файла.
Для каталога разрешение на чтение позволяет пользователю просматривать имена файлов в каталоге.
Символ w — это сокращение от слова Write (Запись)/
Для файла это разрешение на запись, позволяет пользователю изменять и удалять файл.
Для каталога разрешение на запись позволяет пользователю удалить каталог, изменять его содержимое (создавать, удалять и переименовывать файлы в нем), а также изменять содержимое файлов, которые пользователь может прочитать.
Символ x — это сокращение от слова Execute (Выполнять)
Для файла это разрешение на исполнение, позволяет пользователю выполнять файл (пользователь также должен иметь разрешение на чтение). Таким образом, права на выполнение должны быть установлены для исполняемых программ и скриптов до того, как пользователь запустит их.
Для каталога разрешение на выполнение позволяет пользователю получить доступ к метаданным о файлах в каталоге (информация, которая может быть получена в результате выполнения команды ls -l).
Приведем несколько примеров общих форматов, с краткими пояснениями:
- -rw——-: Файл, который доступен только его владельцем.
- -rwxr-хт-х: Файл, который является исполняемым любым пользователем в системе.
- -rw-rw-rw-: Файл, который открыт для модификации каждого пользователя в системе.
- drwxr-хт-х: каталог, что каждый пользователь в системе может читать и доступ.
- drwxrwx —: Каталог, который является изменяемым (включая его содержание) его владельцем и группой.
- drwxr-х —: Каталог, который доступен по своей группе.
Права доступа к папке Linux задаются аналогично правам доступа к файлу, но следует учесть:
- разрешение на чтение папки дает право на просмотр списка имен файлов (не более);
- получение разрешения записи для каталога дает право создавать и удалять файлы в нем, в том числе принадлежащие другим пользователям;
- для получения подробной информации о файлах, находящихся в каталоге нужно иметь доступ на исполнение папки.
Установка t-бита разрешает удаление файла из каталога только владельцу файла. Если t-бит не установлен, то удалить файл из папки может любой пользователь имеющий право записи в эту папку.
Для установки t-бита используется команда:
chmod a+tw
Права пользователя могут быть изменены только владельцем файла или пользователем с правами администратора системы. Для изменения прав используются команды chown, chgrp и chmod.
Рассмотрим подробно аргументы команды chmod:
chmod [ u | g | o | a ] [+ | — | = ] [r | w | x ] name1 [name2 . ]
Выделяют 3 группы, которые могут иметь права доступа к файлам Linux:
owner (u) – владелец файла;
group (g) – группа владельца файла;
others (o) – все остальные;
all (a ) – все вышеперечисленные группы вместе.
и 3 вида прав доступа для каждой группы:
право на чтение ( r);
право на запись (w);
право на исполнение (x).
а также 3 вида операций:
добавить (+);
убрать (-);
присвоить (=).
С помощью команды chmod также происходит управление битами, которые позволяют производить тонкое изменение прав доступа и запускать файл на выполнение с правами владельца или группы (биты SGID и SUID).
Изменять права доступа к файлу может его владелец или суперпользователь (root).
Команда, добавляющая право записи для группы владельца файла выглядит так:
chmod g+w file
Для добавления права доступа к файлам Linux для совершения записи для владельца и группы владельца:
chmod ug+w file
Дает право чтения файла всем пользователям, кроме владельца:
chmod go=r file
Лишает пользователей не находящихся в группе владельца права исполнения файла:
chmod o-x file
Также права доступа к файлам Linux можно изменять явным указанием нужных разрешений при каждом изменении. Для этого используется символьное или цифровое обозначение нужных прав, где каждому виду прав доступа сопоставлены цифры 4, 2, 1 для r, w, x соответственно, а итоговые права доступа к файлам определяются их суммой.
Примеры таких записей:
- chmod rw-r—r— или chmod 644 – команда разрешает владельцу чтение и запись файла, а пользователям из группы владельца и всем остальным, только чтение.
- chmod rwxr-xr-x или chmod 755 – команда дает владельцу выполнять любые операции с файлом, а пользователям из группы владельца и всем остальным разрешено чтение и исполнение.
- chmod rwxrxxrxx или chmod 777 – у всех пользователей есть все права.
Если файлу устанавливается разрешение на выполнение с правами владельца или группы, то записи chmod будут выглядеть следующим образом:
- chmod r-sr-xr-xfail.pl или chmod 4555 для запуска с правами владельца, где «4» — обозначение бита SUID.
- chmod r-xr-sr-xfail.pl или chmod 2755 для запуска с правами группы, где «2» — обозначение бита SGID.
Мы изучили, как настраивать права доступа к данным для каждого пользователя отдельно, что позволяет защитить данные пользователя от нежелательного вмешательства других.
I have a directory with strange permissions ( drwxr-xr-x+ ) — trailing ( + ) as 11th character, which seems to force all the files and subdirectories to assume rwxrwxrwx permissions, Following is the permissions.
I want to get rid of this trailing ( + ). I have tried following .
I have tried following as well :
Any help will be appreciated . Thanks — I am stuck .
2 Answers 2
The trailing + signify that ACL , Access Control List, is set on the directory.
You can use getfacl to get the details
Following output is from getfacl Codespace which have ACL set by setfacl -m u:umesh:rw Codespace . Here setfacl is giving rw permission to Codespace directory for user umesh .
and we can remove the ACL using setfacl , for example, for the above sample
More details at man setfacl and man getfacl
The + when listing a file will signify extended permissions on the file. These permissions will be set with access control lists. If you run «getfacl directory» you will see the extended permissions on the directory.
Depending on how the access control lists are set up, to remove, run:
To remove the + from the listing, you may also need to run: