[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».