Я начал эту серию обучающих статей( 1, 2 , 3 , 4 , 5 , 6), чтобы заполнить пробел в знаниях у начинающих хакеров в операционной системе Linux. Есть много материала, который нужно изучить. Сегодня мы рассмотрим права доступа к файлам в Linux.

Шаг 1. Проверка прав доступа к файлам

Чтобы посмотреть, какие у нас есть права по отношению к файлу, достаточно ввести в терминале команду ls с ключом -l (от слова long). Давайте используем эту команду в каталоге pentest/wireless/aircrack-ng и рассмотрим, что она говорит о тех файлах, которые там содержатся.

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

Как определить файл это или директория

Первый символ в каждой строке как раз и говорит нам о том, является ли это файлом или каталогом. Если строка начинается с «d«, то это директория, а если с « — », то это файл.

Какие права есть на файл?

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

Если мы посмотрим на вторую строку для файла с названием ChangeLog

мы увидим, что она начинается с:

-rw-r-r-

Это означает, что это файл (), для которого у его владельца есть права: на чтение (r) и на запись в него (w), но прав на выполнение нет ().

В следующем наборе разрешений представлены права группы пользователей. (Например, пользователь vasja относится к группе admin — администраторов). И здесь мы видим, что у группы есть права на чтение (r), но не на запись (w) и не на исполнение файла ().

И, наконец, последний набор разрешений указывает на права всех остальных. Мы видим, что все остальные пользователи имеют только права на чтение (r) файла ChangeLog.

Шаг 2. Изменение права доступа к файлам

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

Числовое выражение прав доступа

Помните, что на уровне операционной системы все представлено нулями и единицами. И что все эти разрешения доступа к файлу в операционной системе представлены своеобразными выключателями. Таким образом, если представить права на файлы как три выключателя вкл/выкл, и эти выключатели находятся в двоичной системе исчисления, то правый переключатель представляет 1, когда он включен, средний переключатель представляет 2, когда он включен, и, наконец, крайний левый переключатель представляет 4, когда он включен.

Итак, три состояния доступа к файлам выглядят так (когда они все включены):

r w x

4 2 1 = 7

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

777

Теперь вернемся к нашему файлу ChangeLog. Помните права на него (его разрешения)? Они были rw-r—r— и мы могли бы представить их в виде чисел следующим образом:

r w —    r —  —    r — —

4 2 0   4 0 0   4 0 0

Это может быть представлено 644

Настоящее изменение прав на файл ChangeLog

Если мы хотим предоставить группе права на запись «w» (2) и на исполнение «x» (1), то мы должны использовать команду chmod по отношению к файлу ChangeLog вот так:

chmod 774 ChangeLog

Это выражение говорит, что владелец обладает всеми правами (4 + 2 + 1 = 7), у группы такая же ситуация (4 + 2 + 1 = 7), и мы хотели бы дать всем остальным просто разрешение на чтение (4 + 0 + 0 = 4). Если мы сейчас вызовем ls -l, то увидим, что разрешения на доступ к ChangeLog изменились:

r w x r w x r — —

Не сложно, правда?

Шаг 3. Изменение прав доступа через UGO-синтаксис

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

«+» — добавить разрешение

«-» — удалить разрешение

«=» — установить разрешение

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

chmod g-w ChangeLog

Эта команда говорит буквально следующее: для группы (g) удалить () разрешение на запись (w) файла ChangeLog.

И если сейчас выполнить команду ls -l, тогда станет видно, что группа больше не имеет прав записывать данные в файл ChangeLog.

Если нам нужно дать и пользователю (владельцу) и группе права на исполнение, то мы должны написать так:

chmod u+x, g+x ChangeLog

Эта команда говорит: пользователю (u) добавить (+) права на исполнение (x), группе (g) добавить (+) права на исполнение (x) файла ChangeLog.

Шаг 4. Как предоставить самому себе права на новый хакерский инструмент

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

На этом скриншоте видно, что никто не имеет прав на выполнение файла newhackertool.

Мы можем сами себе предоставить доступ на исполнение файла, если напишем так:

chmod 766 newhackertool

Это даст нам, как владельцу, все разрешения, включая выполнение, а группа и все остальные просто будут читать и писать в него (4 + 2 = 6). Вы можете видеть на скриншоте выше, что после запуска команды chmod мы получили именно то, чего хотели!

В следующей статье об основах Linux мы рассмотрим управление запущенными процессами, поэтому обязательно возвращайтесь. Прочитайте предыдущие статьи на эту тему( 1, 2 , 3 , 4 , 5 , 6), если у вас есть вопросы — задавайте в комментариях.

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

Оставить комментарий

Проверьте также

Metasploit для начинающего хакера — Armitage ( Часть 4)

Продолжение статьи доступно только подписчикам Подпишись на журнал «HelpU Group» по выгодн…