Права доступа и типы пользователей к файлам и директориям в ОС Linux
Часто встречаются ситуации, когда нужно сменить владельца или права на директории/файлы. В первую очередь установка нужных прав доступа и указанные владельца/групп требуется для того, чтобы скрипты, которые используются на сайте могли корректно взаимодействовать с его файлами.
Неверная настройка может привести к неработоспособности некоторого функционала или же полностью всего сайта. Также если предоставлять слишком много прав пользователям, это может повысить вероятность взлома, стандартными правами является значение 755(в битовой маске) для директорий и 644 для файлов.
Но для начала немного разберемся, какие вообще есть типы доступов по пользователях и какие соответственно права доступа они могут иметь в ОС Linux. Эта сортировка и выделенные на типы сделана в целях предоставления разных привилегий и прав пользователям на конкретный файл или каталог. Тем самим Вы можете с легкостью делать ограничения другим пользователям на использование и доступ к вашим данным.
Типы доступов
И так, типы доступов по пользователях делятся на:
- владелец (user, u) — пользователь который является владельцем и имеет возможность изменять права доступа.
- группа (group, g) — какая-то группа пользователей, которая должна иметь определенные общие права на файл/каталог, один и тот же пользователь может входить в несколько групп одновременно.
- все другие (other, o) — любой пользователь, существующий в системе, который не относится к никаким выше перечисленным категориям.
Уровень доступа на указание, изменение владельца файлов и создание новых групп пользователей и т.д. имеет спец-пользователь в системе под именем root, так как данному пользователю по-умолчанию уже принадлежать все права и привилегии в управлении процессами.
Права пользователей
В каждого с этих пользователей могут быть свои права на определенные действия по отношению к указанному файлу/директории, и делятся они условно на 3 типа:
- Права на чтения (read, обозначается как: r или «4» в битовой маске) — право читать файл например, с помощью текстового редактора или просматривать содержимое директории.
- Права на запись (write, обозначается как: w или «2» в битовой маске) — право делать запись и редактирование в файле, или создавать и удалять файлы в каталоге.
- Право на исполнение (execute, обозначается как: x или «1» в битовой маске) — право запускать файл (программу, записанную в файле) или переходить в саму директорию, если при этом нет права на чтение, тогда пользователь просто не увидит наполнение папки.
Практический пример
Рассмотрим это на практическом примере, используя команду ls -l выведем на экран список всех директорий и файлов на сервере с указанными правами.
На скриншоте вверху первая буква обозначает тип файла, в Linux существуют следующие типы файлов:
- - - простой файл;
- d - директория;
- l - символическая ссылка;
- c - файл символьного устройства;
- b - файл блочного устройства;
- s - файл локального сокета;
- p - канал.
Дальше для 3 типов пользователей в установленном порядке по 3 бита для каждого прописываются права на r - чтение, w - запись и x - выполнение. То есть по очереди для владельца директории/файла, потом для группы и затем для остальных пользователей.
Все символы пишутся слитно - не разделяются пробелами, на скрине мы их выделили разными цветами, чтобы на первых порах не путаться и уловить саму суть символьного представления. Еще важный момент, если на месте буквы идет прочерк (символ “-”) это значит, что для этих пользователей нет указанного права.
Например, для директории tmp(см. скриншот) для владельца директории есть в наличие все полностью права, для группы имеем установленные права на чтение и выполнение, а для остальных пользователей имеются на чтение и выполнение. Дополнительно можно видеть, что отсутствуют права для группы и остальных пользователей на запись.
Числовое представление прав доступа
Все эти права можно задать не только символами, а подать и числами. Для наглядности разберем как формируются эти стандартные значения 755 и 644, составив такую таблицу. Где в первой строке будут указаны в установленном порядке (нужно именно так как в таблице снизу) типы пользователей. Во второй подача через символы, в третьей строке покажем как переводятся символы в численный эквивалент. И в четвертой строке как формирируется окончатльное значение по всем 3 типам пользователей, здесь будет проводится суммирование по трем полученным числам.
|
Владелец |
Группа |
Остальные пользователи |
Символами |
rwx |
r-x |
r-x |
Числами |
4-2-1 |
4-0-1 |
4-0-1 |
Итог(суммируем) |
4+2+1=7 |
4+0+1=5 |
4+0+1=5 |
Note: Здесь 0 - ставится на месте отсутствия права, все другие числа мы уже рассматривали выше.
В результате права доступа в символьном представлении rwxr-xr-x можно перевести и записать как 755, по аналогии rw-r--r-- задается как 644.
Заключение
В этой статье собрана основная часть информации для общего понимания новичкам как устроена работа с файлами в Linux. Если вы наблюдаете у себя проблемы с правами доступа к файлам у нас на хостинге, специалисты тех.поддержки ГиперХост готовы 24/7 помочь отладить этот вопрос.