May 2, 2020

[3] Основы Linux для начинающего "Хакера" - Права

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

Эти пособия по Linux для тех у кого есть пробелы в некоторых базовых вещах по использованию операционной системы Linux. Нам еще многое предстоит узнать, рассмотрим в этой статье управление правами пользователей для файлов Linux.Советую ознакомится с предыдущими статьями по данной тематике.

Проверка прав

Когда нам надо узнать права для файла, нужно просто использовать знакомую из прошлой статьи команду ls с ключом -l или long. Давайте воспользуемся этой командой в каталоге /root/test и посмотрим, что она говорит нам о содержимом.

Распознаем файл или директория

Самый первый символ строки говорит нам, файл это или каталог. Если строка начинается с d(directory), это каталог. Если начинается с " - ", это файл.

Распознаем права

Следующий столбец символов определяет права доступа к файлу. Существует три набора rwx, которые означают чтение(read), запись(write) и выполнение(execute). Это определяет, есть ли разрешение на чтение файла, запись в файл или выполнение файла. Если мы посмотрим на вторую строку.

Мы видим что эта строка начинается с : -rw-р - r-- Это означает, что это файл (-), в котором владелец имеет разрешения на чтение (r) и запись (w), но не имеет разрешения на выполнение (-).Почему владелец?Если рассматривать rw- как столбец относящийся к владельцу, то следующий столбец r-- относиться к группе и последний к остальным пользователям.Мы делим права на эти 3 категории.

Смена прав

Давайте представим что нам надо чтобы группа могла писать и выполнять файл . В Linux есть команда chmod, которая позволяет нам изменять права доступа к файлу, пока мы являемся пользователем root или владельцем файла. Эти разрешения представлены их численном эквивалентами в операционной системе Linux.

Итак, три вида прав выглядят в численном виде примерно так:

  • r w x
  • 4 2 1

Если вы сложите эти три значение, вы получите семь, верно? В Linux, когда все прав включены, мы можем представить его с десятичным числовым эквивалентом 7. Итак, если мы хотим представить, что владелец (7) и группа (7) и все пользователи (7) имеют все разрешения, это будет выглядеть так :

  • 777 (rwx rwx rwx) - Каждый пользователь может читать, редактировать и запускать на выполнение

Теперь вернемся к нашему файлу "newfile". Его права - rw- r-- r--, поэтому мы могли бы представить это численно как:

  • r w - r - - r - -
  • 4 2 0 4 0 0 4 0 0

644 (-rw-r--r--) - Все пользователи имеют право чтения, владелец может редактировать.

Теперь, если мы хотим дать группе полномочия write (2) и execute (1), мы можем использовать для этого команду chmod. Мы делаем это командой:

chmod 774 newfile
ls -l

Это команда дает владельцу все права (4 + 2 + 1 = 7), группе (4 + 2 + 1 = 7) и дает всем остальным просто разрешение на чтение (4 + 0 + 0 = 4). Теперь, когда мы делаем ls -l, мы видим, что разрешения для newfile теперь: r w x | r w x | r - -.

Изменение прав с UGO

Хотя числовой метод, является наиболее распространенным методом изменения прав в Linux , есть еще один метод, который некоторым людям удобнее. Его часто называют синтаксисом UGO. UGO означает U = пользователь или владелец, G = группа и O = другие. UGO имеет три оператора:

  • + для добавления прав
  • - для удаления прав
  • = установить права

Итак, если бы я хотел убрать права на запись в группу, к которой принадлежит "newfile", я мог бы написать: chmod g-w newfile. Эта команда говорит: «для группы (g) вычтите (-) разрешение записи (w) в "newfile"».

Вы можете видеть, я сейчас проверяю права доступа к файлу, набрав ls -l, у файла newfile больше нет разрешения на запись для группы. Если бы я хотел дать пользователю и группе разрешение на выполнение(x), я мог бы набрать: chmod u + x, g + x newfile Эта команда говорит: «для пользователя добавьте разрешение на выполнение(x), для группы добавьте разрешение на выполнение(x) в файле newfile».

Источник