Команда chmod linux. как установить права доступа 777 на файл или папку в linux

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID
    — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID
    — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit
    — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

Теперь давайте рассмотрим как посмотреть и изменить права на файлы в linux.

База данных MySQL: что это такое и в чем ее преимущества

MySQL – это реляционная система управления базами данных с открытым исходным кодом, написанная на языках программирования C и C++. Благодаря ей можно оптимизировать работу сайта или мобильного/десктопного приложения.

База данных – это место для структурированного хранения данных. Например, чтобы найти в смартфоне сохраненную картинку, мы используем для этого галерею. В данном случае картинки – это данные, а галерея – база данных.

Такой же подход используется и на многих сайтах, где подключены формы регистрации, системы оформления заказа и прочее. Когда вы регистрируетесь на сервисе, вся полученная от вас информация сохраняется в базе данных – благодаря этому вы можете повторно войти в свой аккаунт и получить доступ к внесенным ранее изменениям.

Если вести крупный ресурс без БД, то на это будет уходить очень много времени и средств. Базы данных группируют и упорядочивают информацию, упрощают получение доступа к ней. Чтобы администрировать такой большой поток данных, используются СУБД: MySQL, Microsoft SQL Server, PostgreSQL и другие.

MySQL хранит всю информацию в табличном виде. Извлечь данные из одной или нескольких таблиц можно с помощью запроса. Запросы в MySQL – это то, на чем все строится, с их помощью можно выполнять всевозможные операции с данным.

Столбцы таблицы всегда строго упорядочены, а расположение строк при необходимости может меняться в зависимости от информации в ячейках. Посмотрите на простую адресную книжку в виде таблицы:

Принцип работы с таблицами следующий: к серверу, на котором хранятся и обрабатываются структурированные данные, подключаются клиенты для получения необходимой информации, а для взаимодействия между пользователем и сервером используется специальное ПО. Заполнение подобных и более крупных таблиц происходит с помощью языка программирования SQL.

Исходя из пользовательского опыта, можно выделить следующие особенности MySQL:

  • быстрая скорость доступа и обработки данных;
  • надежная защита информации;
  • простота использования;
  • совместимость с Windows и Linux;
  • бесплатность;
  • возможность контролировать доступ к данным и учетным записям;
  • шифрование паролей.

На этом с теоретической частью закончим. 

Вариант 2 — Использование FTP-клиента для изменения прав доступа

В данном руководстве мы будем использовать FTP-клиент FileZilla , однако, вы можете использовать любой другой.

  1. Для начала подключитесь к вашему хостинг аккаунту с помощью клиента FileZilla.
  1. Далее выберите необходимый вам файл и кликните на него правой кнопкой мыши, далее
    Права доступа к файлу
    .

  1. В новом окне установите необходимые права доступа удобным вам способом и нажмите кнопку
    ОК
    .

Числовое значение
– права для всех групп в числовом значении. К примеру, 777 все права для всех групп.

Перенаправить во вложенные каталоги
– все изменения будут рекурсивно применены для всех папок или файлов внутри данной папки.

Использование команды в числовом виде

Права записываются одной строкой сразу для трёх типов пользователей:

  • владельца файла (u);
  • других пользователей, входящих в группу владельца (g);
  • всех прочих пользователей (o);

В числовом виде файлу или каталогу устанавливаются абсолютные права , в то же время в символьном виде можно установить отдельные права для разных типов пользователей.

Пример: в числовом виде, установить права rwx-rx-rx:

chmod 755 filename

Пример — значение права «755»

Владелец Группа Остальные
восьмеричное значение 7 5 5
символьная запись rwx r-x r-x
обозначение типа пользователя u g o

Таким образом, права «755» записываются в символьном виде как «rwxr-xr-x». При этом для понимания сути задания прав в Unix-системах полезно знать представление чисел в двоичной системе счисления.

Варианты записи прав пользователя

двоичная восьмеричная символьная права на файл права на директорию
000 нет нет
001 1 —x выполнение чтение файлов и их свойств
010 2 -w- запись нет
011 3 -wx запись и выполнение всё, кроме чтения списка файлов
100 4 r— чтение чтение имён файлов
101 5 r-x чтение и выполнение доступ на чтение
110 6 rw- чтение и запись чтение имён файлов
111 7 rwx все права все права

Часть разрешений имеет смысл только в сочетании с другими. Из первых четырёх пунктов (не дающих права на чтение файла) для файлов обычно используется только «—», то есть полный запрет доступа к файлу данному типу пользователей. Для директорий из всего списка обычно применяются только 0, 5 и 7 — запрет, чтение и выполнение, и полный доступ.

Суммировав эти коды для трёх типов пользователей, можно получить числовую или символьную запись. Например, chmod 444 {имяфайла}: 400+40+4=444 — все имеют право только на чтение (идентично «r—r—r—»).

Помимо стандартных разрешений ‘rwx’, команда chmod осуществляет также управление битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно.

Для SUID вес — 4000, а для SGID — 2000. Данные атрибуты имеют смысл при установленном соответствующем бите исполнения и обозначаются при символьной записи буквой «s»: и соответственно.

Пример: chmod 4555 {имяфайла} — все имеют право на чтение и выполнение, но запускаться файл на исполнение будет с правами владельца.

Установка SGID для директории приведёт к установке принадлежности каждого нового создаваемого файла к той же группе, к которой принадлежит сама директория, а не к основной группе владельца, как это происходит по умолчанию. SUID для директории не имеет смысла.
sticky bit или restricted deletion flag (t-бит) используется только с директориями. Когда t-бит для директории не установлен, файл в данной директории может удалить (переименовать) любой пользователь, имеющий доступ на запись к данному файлу. Устанавливая t-бит на директорию, мы меняем это правило таким образом, что удалить (переименовать) файл может только владелец этого файла. Следуя приведённой выше кодировке, t-бит имеет вес 1000.

Примечание: Право на запись (w) даёт пользователю возможность записывать или изменять файл, а право на запись для каталога — возможность создавать новые файлы или удалять файлы из этого каталога. Если на каталоге стоит возможность записи (w), то файл внутри этого каталога можно будет удалить, даже если право на запись для него не установлено. (В соответствии с концепцией файловой системы POSIX).

Популярные значения

— Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия — Все пользователи имеют право чтения; владелец может редактировать — Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий — Все пользователи имеют право чтения; владелец и группа могут редактировать — Все пользователи могут читать и редактировать — Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия — Каждый пользователь может читать, владелец имеет право редактировать и запускать на выполнение — Каждый пользователь имеет право читать и запускать на выполнение; владелец может редактировать — Каждый пользователь может читать, редактировать и запускать на выполнение — Каждый пользователь имеет право читать и запускать на выполнение; удалить файл может только владелец этого файла — Каждый пользователь имеет право читать и запускать на выполнение с правами группы(user group) владельца файла — Владелец и группа имеет право чтения никто другой не имеет права выполнять никакие действия — Каждый пользователь имеет право читать и запускать на выполнение с правами владельца файла

Типы пользователей в Linux

Каждый файл и каталог в Linux имеет три категории пользователей:

   Владелец — пользователь, создавший файл/каталог.

   Группа — все пользователи, принадлежащие к некоторой заданной группе, будут иметь одинаковые разрешения группы на доступ к файлу. Предположим, у вас есть проект, в котором несколько человек требуют доступа к файлу. Вместо того, чтобы вручную назначать права доступа каждому пользователю, вы можете добавить их всех в одну группу и назначить права доступа группы к файлу таким образом, чтобы только члены данной группы (и никто другой) могли читать или изменять файлы. Даже если вы единственный пользователь системы, вы все равно будете частью многих групп.

   Остальные/Другие (все остальные пользователи) — любой другой пользователь, имеющий доступ к файлу. Он не является владельцем файла, и не принадлежит к группе, которая могла бы владеть файлом.

Другими словами, Владелец — это один пользователь, Группа — это совокупность пользователей, а Остальные — совокупность из всех остальных пользователей системы.

Примечание: В этой статье я буду использовать общий термин «файл», но все действия могут быть применены в том числе и к каталогам.

Теперь представим такую ситуацию: пусть у нас есть два пользователя А и Б, требуется сделать так, чтобы пользователь А не мог повлиять на файл, содержащий жизненно важную информацию/данные пользователя Б. Возникает вопрос: «Как Linux различает данные категории пользователей?». Например, вы не хотите, чтобы ваш коллега, который работает на вашем компьютере с Linux, просматривал ваши изображения. Вот тут-то на сцену и выходят права доступа, определяющие поведение пользователей.

Работа с символическими ссылками

Символьные ссылки всегда имеют разрешения.

По умолчанию при изменении разрешений символической ссылки изменяются разрешения для файла, на который указывает ссылка.

Скорее всего, вместо изменения целевого владельца вы получите сообщение об ошибке «невозможно получить доступ к символической ссылке: отказано в доступе».

Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Эта опция указана в . значит включен и отключен. Рекомендуется не отключать защиту символической ссылки.

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.

Эффекты

И флаги имеют различные эффекты, в зависимости от того , применяются ли они к файлу, к каталогу или двоичной или отсутствия двоичного исполняемого файла. И флаги имеют эффект только на бинарных исполняемых файлов , а не на скриптах (например, Bash, Perl, Python).

При установке на исполняемый файл

Когда атрибуты или установлены для исполняемого файла, то любые пользователи, способные выполнить файл, будут автоматически выполнять файл с привилегиями владельца файла (обычно root ) и / или группы файла, в зависимости от установленных флагов. Это позволяет разработчику системы разрешить запуск доверенных программ, которые в противном случае пользователю не разрешили бы выполнять. Это не всегда может быть очевидным. Например, команде ping может потребоваться доступ к сетевым привилегиям, к которым не может получить доступ обычный пользователь; поэтому ему может быть присвоен флаг setuid, чтобы гарантировать, что пользователь, которому нужно выполнить эхо-запрос для другой системы, может это сделать, даже если его собственная учетная запись не имеет необходимых привилегий для отправки пакетов.

В целях безопасности, вызывающий пользователь, как правило , запрещены системы от изменения нового процесса каким — либо образом, например, с использованием , или передачи сигналов к нему, чтобы использовать повышенную привилегию, хотя сигналы от терминала по- прежнему будет принят.

И биты обычно устанавливает с помощью команды , установив высокие порядка восьмеричную цифру 4 для или 2 для . « » Будет установить как и биты (4 + 2 = 6), что делает файл чтение / запись / исполняемый для владельца (7) и исполняемый группой (1) первая и вторая другие (1). Когда пользователь, не являющийся владельцем, выполняет файл, процесс запускается с разрешениями пользователя и группы, установленными для него его владельцем. Например, если файл принадлежит пользователю и группе , он будет запускаться независимо от того, кто запускает файл.

Большинство реализаций команды также поддерживают более мелкие символьные аргументы для установки этих битов. Предпочтительно более мелкозернистый режим показан на демонстрации ниже как » »

Влияние на безопасность

Хотя эта функция очень полезна во многих случаях, ее неправильное использование может представлять угрозу безопасности, если атрибут назначается исполняемым программам, которые не были тщательно спроектированы. Из-за потенциальных проблем безопасности многие операционные системы игнорируют атрибут при применении к исполняемым сценариям оболочки .

Наличие исполняемых файлов объясняет, почему системный вызов недоступен для пользователей без полномочий root в Unix. См. для более подробной информации.

Установка разрешения для каталога (» «) заставляет новые файлы и подкаталоги, созданные в нем, наследовать его идентификатор группы , а не основной идентификатор группы пользователя, создавшего файл (идентификатор владельца никогда не затрагивается, только идентификатор группы) .

  1. Вновь созданные подкаталоги наследуют бит. Таким образом, это позволяет создать общую рабочую область для группы без неудобств, связанных с необходимостью того, чтобы члены группы явно изменяли свою текущую группу перед созданием новых файлов или каталогов.
  2. влияет только на идентификатор группы новых файлов и подкаталогов, созданных после установки бита, и не применяется к существующим объектам.
  3. не влияет на идентификатор группы файлов, которые созданы в другом месте и перемещены в соответствующий каталог. Файл будет по-прежнему содержать идентификатор группы, который был применен, когда и где он был создан.

Установка бита в существующих подкаталогах должна выполняться вручную с помощью такой команды, как

Набор разрешений для каталога игнорируется в большинстве систем UNIX и Linux . Однако FreeBSD может быть настроен для интерпретации аналогично , и в этом случае он заставляет все файлы и подкаталоги, созданные в каталоге, принадлежать владельцу этого каталога — простая форма наследования. Обычно это не требуется в большинстве систем, основанных на BSD , поскольку по умолчанию каталоги обрабатываются так, как будто их бит всегда установлен, независимо от фактического значения. Как указано в : «Когда создается новый файл, ему дается группа каталога, в котором он находится».

Буквенная запись прав доступа

Поскольку есть три категории пользователей (владелец, группа, остальные) и три действия над файлом (чтение, запись, исполнение), то получается, что в атрибутах файла должно быть девять записей о правах, указывающих на то, кто и что может делать с файлом.

Первые три записи – это права владельца, вторые три записи – права группы, последняя тройка – права на файл для всех остальных. Если обозначить каждое право соответствующей буквой, и все права всем предоставляются, то получится такая запись:

rwxrwxrwx

Мы уже видели нечто подобно в выводе команды . В первом столбце, после символа типа файла указываются права доступа к файлу в буквенной нотации.

Если какое-либо право не предоставляется той или иной категории, то вместо буквы ставится знак минус. Например, на скрине выше файл text.txt все могут читать, но изменять – только владелец.

Создание нового пользователя в MySQL

После установки MySQL в базе данных автоматически будет создан новый пользователь root. Работать под таким именем небезопасно, поэтому рекомендуется создавать нового пользователя и выполнять необходимые действия под ним. Давайте рассмотрим два способа создания нового пользователя в MySQL – через phpMyAdmin и через консоль.

Вариант 1: с помощью phpMyAdmin

Нам потребуется phpMyAdmin – приложение для работы с базой данных, которое обычно по умолчанию предустановлено на хостинге либо локальном сервере. 

Чтобы добавить нового пользователя в phpMyAdmin, воспользуемся инструкцией:

  1. На главной странице через верхнее правое меню переходим во вкладку «Учетные записи пользователей». Затем выбираем «Добавить учетную запись пользователя».
  2. Следующим шагом вводим новое имя пользователя и хоста, прописываем пароль. В завершение жмем на кнопку «Генерировать».
  3. Теперь нам потребуется задать привилегии для нового пользователя. Если вы хотите установить доступ только для определенных баз данных, то можете пропустить этот пункт – просто нажмите на кнопку «Вперед», расположенную внизу страницы.
  4. Будет добавлен новый пользователь с указанным именем.

Подробнее о правах доступа мы поговорим чуть позже, а пока давайте рассмотрим альтернативный метод добавления пользователя в БД.

Вариант 2: через консоль

Если вы подключаетесь к серверу по SSH, то этот способ для вас. Нам потребуется выполнить несколько команд:

Первым дело активируем сервер базы данных:

mysql

Создадим нового пользователя:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'pswrd';

В кавычках потребуется изменить следующие данные: user – имя пользователя, pswrd – пароль.

Пока что пользователь не имеет разрешений, а значит, не может получить доступ к MySQL. Для решения такой проблемы пропишем еще одну строчку кода:

GRANT ALL PRIVILEGES ON * . * TO 'user'@'localhost';

Мы выдали указанному пользователю все доступные права. Осталось сохранить внесенные изменения с помощью команды:

FLUSH PRIVILEGES;

Готово! Теперь вы знаете, как создать нового пользователя в MySQL с правами доступа root.

Команда chmod

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».

Синтаксис команды chmod следующий:

Разрешения можно задавать двумя способами:

  • Числом
  • Символами

Запись прав доступа числом

Пример:

В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

Число Разрешения Символьное обозначение
разрешения отсутствуют
1 x — запуск —x
2 w — изменение -w-
3 x+w — запуск+изменение -wx
4 r — чтение r—
5 r+x — чтение+запуск r-x
6 r+w — чтение+изменение rw-
7 r+w+x — чтение+изменение+запуск rwx

Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 764, которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:

Числовоеобозначение «rwx»-обозначение Описание
400 -r——— Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены.
644 -rw-r—r— Все пользователи могут читать файл. Владелец может изменять файл.
660 -rw-rw—- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены.
664 -rw-rw-r— Все могут читать файл. Владелец и группа могут изменять.
666 -rw-rw-rw- Все могут читать и изменять файл.
700 -rwx—— Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены.
744 -rwxr—r— Все могут читать файл. Владелец может также изменять и запускать файл.
755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл.
777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл.

Запись прав доступа символами

Примеры:

Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «» и такие символы как, например, «g» или «u».

Общий синтаксис можно записать примерно так:

Обозначения для владельцев файла следующие:

Обозначение Описание
u Владелец-пользователь.
g Группа.
o Все остальные.
a Вообще все.

Математические операции означают следующее:

Оператор Описание
+ Добавляет к текущим правам доступа новое разрешение.
Удаляет из текущих прав доступа определенное разрешение.
= Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми).

В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).

Рассмотрим примеры:

  • В данном случае мы не используем обозначения для владельцев, а значит разрешения устанавливаются для всех пользователей. «+x» означает — установить разрешение на запуск (x) файла для всех пользователей. Это эквивалентно выполнению команды: chmod a+x myfile1.

  • Здесь используется обозначение g и символ равенства «=». Это означает, что для группы мы устанавливаем права доступа на чтение и запись файла (rw).

  • Для владельца файла (u) мы удаляем разрешение на изменение (w) файла.

  • Разрешаем владельцу (u) и группе (g) запускать файл (x).

  • Это как раз тот случай, когда мы перечисляем владельцев через запятую и устанавливаем для них разрешения. Для владельца файла (u) мы разрешаем запуск файла, для группы (g) мы запрещаем изменять файл, для всех остальных (o) мы запрещаем читать файл.

Рекурсивное изменение прав доступа

Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:

И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:

Как дать права на папку Linux

Операционные системы Линукс позволяют давать права на каталог с помощью команды «chmod». Выполнена она может быть символьным или абсолютным видом. В первом случае присваиваются параметры r, w или x, которые определяют, можно ли тому или иному пользователю читать, просматривать или изменять данные.

Гораздо практичнее воспользоваться абсолютным способом. Он основан на команде «rw-r—». Эти символы означают то, что User способен лишь читать и изменять файл (ключи r и w соответственно). При этом участники группы, в которой он состоит. Могут лишь просматривать содержимое.

Важно! Любой другой пользователь просто не получит доступа к данным, если он не в группе. Для работы с абсолютным редактированием прав, необходимо переводить параметры в восьмеричную систему счисления

К примеру, если человек может читать файл или папку, то это «1». Если еще и редактировать, то это тоже «1».  Запуск ограничен, поэтому «0». Получается число «110». Перевод его в восьмеричную систему дает результат «6». После этого по образцу шифруют права группы и посторонних людей. Получается три цифры, которые будут использованы в команде «chmod ХХХ имя_файла», где ХХХ – цифры привилегий в восьмеричной системе, а «имя файла» – наименование папки или файла, права которых редактируются

Для работы с абсолютным редактированием прав, необходимо переводить параметры в восьмеричную систему счисления. К примеру, если человек может читать файл или папку, то это «1». Если еще и редактировать, то это тоже «1».  Запуск ограничен, поэтому «0». Получается число «110». Перевод его в восьмеричную систему дает результат «6». После этого по образцу шифруют права группы и посторонних людей. Получается три цифры, которые будут использованы в команде «chmod ХХХ имя_файла», где ХХХ – цифры привилегий в восьмеричной системе, а «имя файла» – наименование папки или файла, права которых редактируются.

Таблица перевода параметров из двоичной в восьмеричную систему

Подытожим

Для каждого файла или директории в Linux задаются права доступа. Они задаются тремя атрибутами: набором разрешений, именем владельца, именем группы.

Набор разрешений — это три блока прав доступа: права доступа для владельца файла, права доступа для группы, права доступа для всех остальных.

Разрешения записываются символами r, w, x.

Набор разрешений состоит из трех блоков и записывается в виде трех rwx, записанных друг за другом в виде одного «слова».

Если какая-либо возможность отключена (запрещена), то вместо соответствующего символа в наборе разрешений ставится прочерк (символ минус).

Основные права доступа к файлам в Linux

Изначально каждый файл имел три параметра доступа. Вот они:

  • Чтение
    — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись
    — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение
    — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.

Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:

  • Владелец
    — набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
  • Группа
    — любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
  • Остальные
    — все пользователи, кроме владельца и пользователей, входящих в группу файла.

Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.

Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:

Владельцы файлов в Linux

Примечание: я мог бы использовать термин файл здесь, но он применим и к каталогам. Думаю, вы знаете, что каталоги — это файлы

У каждого файла и каталога в Linux есть три типа владельцев:

Пользователь

Пользователь является владельцем файла. Когда вы создаете файл, вы становитесь владельцем файла. Владельцы также могут быть изменены, но мы увидим это позже.

Группа

Каждый пользователь является частью определенной группы (групп). Группа состоит из нескольких пользователей, и это один из способов управления пользователями в многопользовательской среде.

Например, если у вас есть команда разработчиков, команда QA и команда sysadmin, работающие с одной и той же системой, вы должны создать для них отдельные группы. Таким образом, вы можете эффективно управлять файлами и безопасностью системы. Это экономит время, поскольку вместо добавления разрешения для каждого пользователя вручную, вы можете просто добавить их в группу и изменить разрешение для группы. Вы увидите, как это сделать позже в этой статье.

Даже если вы единственный пользователь системы, вы все равно будете частью многих групп. Такие дистрибутивы, как Ubuntu, также создают группу с именем, совпадающим с именем пользователя.

Owner «Другой»

«Другой» можно рассматривать как супергруппу со всеми пользователями системы. По сути, любой, кто имеет доступ к системе, принадлежит к этой группе.

Другими словами, «Пользователь» — это один пользователь, Группа — это совокупность пользователей, а «Другое» состоит из всех пользователей системы.

Изменить права доступа к файлам в Linux

Вы можете использовать команду CHMOD для изменения разрешений на файл в Linux.

Общая информация : Разрешения назывались режимом доступа и, следовательно, CHMOD была короткая форма изменения режима доступа.

Существует два способа использования команды chmod:

  • Абсолютный режим
  • Символический режим

Использование chmod в абсолютном режиме

В абсолютном режиме разрешения представлены в числовой форме (точнее, восьмеричная система). В этой системе каждое разрешение файла представлено числом.

  • r (чтение) = 4
  • w (написать) = 2
  • x (выполнить) = 1
  • – (без разрешения) = 0

С помощью этих числовых значений вы можете комбинировать их, и, таким образом, один номер может использоваться для представления всего набора разрешений.

Число разрешение
1 -x
2 -w-
3 (т.е. 2 + 1) -wx
4 r-
5 (т.е. 4 + 1) г-х
6 (т.е. 4 + 2) rw-
7 (т.е. 4 + 2 + 1) rwx

Можете ли вы догадаться о разрешении файла в цифрах в файле andreyex.txt в нашем примере? Это пишут, это 754.

Теперь, когда вы знаете, какой номер представляет это разрешение, давайте посмотрим, как изменить разрешение файла с помощью этих знаний.

Предположим, вы хотите изменить разрешение файла на andreyex.txt, чтобы каждый мог читать и писать, но никто не может его выполнить? В этом случае вы можете использовать команду chmod следующим образом:

chmod 666 andreyex.txt

Если вы перечислите andreyex.txt сейчас, вы увидите, что разрешение было изменено.

-rw-rw-rw- 1 andreyex andreyex 457 Aug 18 16:20 andreyex.txt

Использование chmod в символическом режиме

Проблема с абсолютный режим заключается в том, что вы должны всегда предоставлять три номера для всех трех владельцев, даже если вы хотите изменить разрешение для одного владельца.

Здесь вы можете использовать символический режим с помощью команды chmod.

В символическом режиме владельцы обозначаются следующими символами:

  • u = пользовательский пользователь
  • g = владелец группы
  • o = другое
  • a = все (пользователь + группа + прочее)

Символический режим использует математические операторы для выполнения изменений разрешения:

  • + для добавления разрешений
  • – для удаления разрешений
  • = для переопределения существующих разрешений с новым значением

Теперь, когда вы знаете, давайте посмотрим, как использовать команду chmod в символическом режиме.

В нашем предыдущем примере, если вы хотите добавить разрешение на выполнение для владельца группы, вы можете использовать команду chmod следующим образом:

chmod g+x andreyex.txt

Если вы сейчас просмотрите разрешения для этого файла, вы увидите, что теперь добавлено разрешение на выполнение:

-rw-rwxrw- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Вы также можете объединить несколько изменений разрешений в одну команду. Предположим, вы хотите удалить права на чтение и запись и добавить разрешения на выполнение для других. Вы также хотите добавить разрешение на выполнение для пользователя, Вы можете сделать все это по одной команде:

chmod o-rw+x,u+x andreyex.txt

Полученные разрешения будут такими:

-rwxrwx--x 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Если вы хотите одновременно изменить разрешения для всех трех пользователей, вы можете использовать его следующим образом:

chmod a-x andreyex.txt

Это приведет к удалению разрешения на выполнение для всех.

-rw-rw---- 1 andreyex andreygroup 457 Aug 18 16:20 andreyex.txt

Теперь, когда вы знаете, как изменить разрешение файла, давайте посмотрим, как изменить права собственности на файл.

Совет
Один файл не может входить в несколько групп.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: