Статья ТЕРМИНАЛ LINUX ДЛЯ НОВИЧКА. Ну а теперь я хакер? (часть II)

xzotique

Green Team
24.03.2020
27
14
1764322664383.webp

"Я сбрутфорсил мамин аккаунт в Одноклассниках...
Назад пути нет.
Конгломерат - я близко"

В первой части мы с вами научились передвигаться по файловой системе, просматривать содержимое папок\файлов, создавать собственные файлы и успешно от них избавляться.
Мы упустили очень важный момент - терминал умеет говорить "нет". Причём в разных гадких формулировках.
Код:
xzotique@xzotique-Aspire-A715-59G:~$ apt install
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock-frontend - open (13: Отказано в доступе)
E: Невозможно получить блокировку внешнего интерфейса dpkg (/var/lib/dpkg/lock-frontend); у вас есть права суперпользователя?
Да, этот гадкий квадрат Малевича прав, прав суперпользователя у нас нет. Пора разбираться.

Четвёртая статья в линейке обучающих материалов.
ТЕРМИНАЛ LINUX. ПОНЯТИЕ СУПЕРПОЛЬЗОВАТЕЛЯ И ПРАВА ПОЛЬЗОВАТЕЛЕЙ. Часть II.

1764323595772.webp


Права суперпользователя (root-права) - совокупность разрешений пользователя, позволяющих выполнять максимально допустимые манипуляции с конфигурацией машины и файловой системой ОС.


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

Пользователь с root-правами будет посмелее - он способен оперировать ВСЕМ ФУНКЦИОНАЛОМ ОС, включая любые манипуляции с файлами\папками\программами других пользователей. Вплоть до запрета доступа к файлу N пользователю, которому этот файл и принадлежит в полной мере.

Наглядный пример. В среде ОС Linux существует такая интересная и полезная вещь, как APT (Advanced Packaging Tool) - менеджер пакетов, позволяющий устанавливать программное обеспечение из репозиториев - сетевых хранилищ, содержащих крупное количество данных (в нашем случае ПО).

Помните, что смешарики могут запускать и редактировать свои файлы? А скачивать другие могут? А обновлять?
Попробуем установить пакет NMAP - инструмент для сканирования сетей, портов и сервисов.
1764324509011.webp


Опять 25... Мелочь! Представляю вам команду sudo - утилита, с помощью которой вы можете получить права суперпользователя на выполнение всего процесса команды\набора команд.
При выполнении команды правами суперпользователя - пользователю необходимо ввести учётные данные (пароль) своего аккаунта.
1764324966842.webp



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

Важная пометка: права суперпользователя - набор прав, позволяющий при ненадлежащем использовании СЛОМАТЬ ОПЕРАЦИОННУЮ СИСТЕМУ. Будет ли она подлежать восстановлению - дело ситуативное. Поэтому, рекомендую внимательно проверять содержимое команды перед выполнением её с правами суперпользователя.

С рутом разобрались. Уже считай полноценный хакер (клянусь). Теперь создадим первого пользователя!
Две основные команды. Созданием и удалением пользователей может оперировать только суперпользователь.
Код:
sudo adduser <name>
- создание пользователя

sudo deluser <name>
- удаление пользователя

Пробуем создать пользователя с именем hacker. Используем команды выше:
1764326025925.webp

При выполнении команды происходит вывод в качестве мелкого интерактива - нам предлагают указать пароль (предупреждение в виде неудачи всё равно пропустит пароль в систему), полное имя пользователя и прочие второстепенные "офисные" данные.
Выполнить вход в терминал от имени нового пользователя можно с помощью команды su (сокращение set-user) и выйти с пользовательского терминала командой exit:

1764327222005.webp


Мы научились пользоваться правами суперпользователя, создавать\удалять пользователей и пользоваться некоторыми административными командами.

Переходим к правам обычных пользователей.

Выполните задание:
1. Создайте папку в домашнем каталоге. Назовите её test.
2. В созданной папке создайте 3 текстовых файла - 1.txt | 2.txt. | 3.txt

Содержимое папки должно выглядеть следующим образом.
1764327274170.webp


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

Права состоят из 3 частей RWX\RWX\RWX
1 часть: права текущего пользователя,
2 часть: права группы,
3 часть: права остальных пользователей.

Права в этом и остальных файлах расписаны: пользователю и группе выданы права на чтение и редактирование (RW-), а остальным пользователям доступно только чтение (R--).

Существует две вариации назначения прав: числовая и символьная.

Числовая вариация выдаёт права по результату комбинации бит. Пример:
1764350151617.webp

Командой chmod 777 1.txt мы выдали текущему пользователю, группе и остальным пользователям одинаковые ПОЛНЫЕ права на просмотр, редактирование и исполнение файла 1.txt
Первое число отвечает за набор прав для текущего пользователя, второе число - за набор прав для группы, соответственно третье - набор прав остальных пользователей.

Тяжело? Сделаем иначе.

Вашему вниманию: шпаргалка манипуляций с правами на файлы и папки.
1764350426638.webp

По таблице можно обратить внимание, что символьный вид прав визуализирован как некое число, отвечающее за те или иные наборы прав.
Linux представляет их в виде переменных с числовым значением:
R=4
W=2
X=1

Соответственно, чтобы выдать\отнять у одного из трёх носителей прав то или иное право, мы отнимаем это право от общей суммы значений переменных.

Общая сумма - 7. Это полное право возможных манипуляций над файлом, соответственно:
Чтобы отнять право на исполнение у одного из носителя прав, мы отнимаем значение Х (единицу) от общей суммы значений переменных (7).
Выходит 6, или же 4+2, ну или же, как итог RW.


Перейдём в терминал, берём с собой команду ls -l. Первый вывод показал текущие права носителей. Их можно визуализировать как 664.
6 - для пользователя (RW)
6 - для групп (RW)
4 - для остальных пользователей (R)

1764351201429.webp

Для первого файла мы выдали права 777:
Все носители прав имеют набор RWX (полные права на файл)


Для второго файла мы выдали права 771:
Текущий пользователь имеет набор RWX (полные права на файл)
Группа и остальные пользователи имеют набор --X (только исполнение)


Для третьего файла мы выдали права 700:
Текущий пользователь имеет набор RWX (полные права на файл)
Группа и остальные пользователи имеют набор --- (отсутствие прав на просмотр, редактирование и исполнение файла)


Символьная вариация немного проще.

Она позволяет присвоить тому или иному носителю прав символьное значение в виде прямого присвоения переменных.
Ранее мы выяснили, что носители делятся как три части вывода терминала. Представим их в виде одиночных букв:
U (user) - текущий пользователь
G (group) - группа пользователей
O (others) - остальные пользователи


Отныне вместо присвоения тех или иных числовых значений в качестве набора прав для носителей, мы можем использовать выше указанные переменные. Для начала научимся убирать ранее указанные.
Для выдачи\отнятия прав можно пользоваться аргументами u, g и o с комбинацией + и -, в соответствии с целью выдачи\отнятия.

Заберём все права на файл 1.txt у всех носителей прав командой chmod u-rwx,g-rwx,o-rwx 1.txt. Получаем нужные изменения:
1764352472016.webp


Так же их можно вернуть отнятое, изменив комбинацию с - на +.
Вернём их немного по другому: пользователю - только чтение, группе - только редактирование, остальным - только исполнение.
1764352586317.webp


Помимо базы, есть удобный сокращающий аргумент a+\a-, который может выдавать\отнимать указываемые права на всех трёх носителей.
Давайте его попробуем! Выдадим всем носителям прав полный набор, и заодно для проверки этот набор отнимем:
1764352780954.webp


И напоследок. Помните нашего земляка - пользователя hacker? Давайте отдадим владение файлом нашему другу командой
chown <имя нового владельца> <файл>. Добьём великомученика 1.txt.
1764353019223.webp


Теперь великомученик - это дорогой читатель.
Ты хорошо потрудился!
С каждой статьей ты получаешь всё больше новых знаний и навыков!

Благодарю Codeby за предоставленную возможность.
Самый ценный ресурс - ваша обратная связь!
 
  • Нравится
Реакции: Hatsune Miku
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab