"Я сбрутфорсил мамин аккаунт в Одноклассниках...
Назад пути нет.
Конгломерат - я близко"
В первой части мы с вами научились передвигаться по файловой системе, просматривать содержимое папок\файлов, создавать собственные файлы и успешно от них избавляться.
Мы упустили очень важный момент - терминал умеет говорить "нет". Причём в разных гадких формулировках.
Код:
Код:
xzotique@xzotique-Aspire-A715-59G:~$ apt install
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock-frontend - open (13: Отказано в доступе)
E: Невозможно получить блокировку внешнего интерфейса dpkg (/var/lib/dpkg/lock-frontend); у вас есть права суперпользователя?
Да, этот гадкий квадрат Малевича прав, прав суперпользователя у нас нет. Пора разбираться.
Четвёртая статья в линейке обучающих материалов.
ТЕРМИНАЛ LINUX. ПОНЯТИЕ СУПЕРПОЛЬЗОВАТЕЛЯ И ПРАВА ПОЛЬЗОВАТЕЛЕЙ. Часть II.

Права суперпользователя (root-права) - совокупность разрешений пользователя, позволяющих выполнять максимально допустимые манипуляции с конфигурацией машины и файловой системой ОС.
В прошлой статье мы были в коже смешарика - наши способности ограничивались запуском некоторых программ\команд и созданием\редактированием собственных файлов\папок.
Пользователь с root-правами будет посмелее - он способен оперировать
ВСЕМ ФУНКЦИОНАЛОМ ОС, включая любые манипуляции с файлами\папками\программам и других пользователей. Вплоть до запрета доступа к файлу N пользователю, которому этот файл и принадлежит в полной мере.
Наглядный пример. В среде ОС Linux существует такая интересная и полезная вещь, как
APT (Advanced Packaging Tool) - менеджер пакетов, позволяющий устанавливать программное обеспечение из
репозиториев - сетевых хранилищ, содержащих крупное количество данных (в нашем случае ПО).
Помните, что смешарики могут запускать и редактировать свои файлы? А скачивать другие могут? А обновлять?
Попробуем установить пакет
NMAP - инструмент для сканирования сетей, портов и сервисов.
Опять 25... Мелочь! Представляю вам команду
- утилита, с помощью которой вы можете получить права суперпользователя на выполнение всего процесса команды\набора команд.
При выполнении команды правами суперпользователя - пользователю необходимо ввести учётные данные (пароль) своего аккаунта.
Как мы видим, у меня этот пакет уже установлен. В конце вывода указывается, сколько пакетов обновлено и установлено, и какие выводят ошибку.
Важная пометка: права суперпользователя - набор прав, позволяющий при ненадлежащем использовании СЛОМАТЬ ОПЕРАЦИОННУЮ СИСТЕМУ. Будет ли она подлежать восстановлению - дело ситуативное. Поэтому, рекомендую внимательно проверять содержимое команды перед выполнением её с правами суперпользователя.
С рутом разобрались. Уже считай полноценный хакер (клянусь). Теперь создадим первого пользователя!
Две основные команды. Созданием и удалением пользователей может оперировать только суперпользователь.
Код:
Код:
sudo adduser
- создание пользователя
sudo deluser
- удаление пользователя
Пробуем создать пользователя с именем
. Используем команды выше:
При выполнении команды происходит вывод в качестве мелкого интерактива - нам предлагают указать пароль (предупреждение в виде неудачи всё равно пропустит пароль в систему), полное имя пользователя и прочие второстепенные "офисные" данные.
Выполнить вход в терминал от имени нового пользователя можно с помощью команды
(сокращение set-user) и выйти с пользовательского терминала командой
:
Мы научились пользоваться правами суперпользователя, создавать\удалять пользователей и пользоваться некоторыми административными командами.
Переходим к правам обычных пользователей.
Выполните задание:
1. Создайте папку в домашнем каталоге. Назовите её
test.
2. В созданной папке создайте 3 текстовых файла -
1.txt | 2.txt. | 3.txt
Содержимое папки должно выглядеть следующим образом.
Используем в той же папки команду
с аргументом
, теперь мы видим права на
чтение, редактирование и исполнение файла.
Права состоят из 3 частей
RWX\RWX\RWX
1 часть: права текущего пользователя,
2 часть: права группы,
3 часть: права остальных пользователей.
Права в этом и остальных файлах расписаны: пользователю и группе выданы права на
чтение и редактирование (RW-), а остальным пользователям доступно
только чтение (R--).
Существует две вариации назначения прав:
числовая и символьная.
Числовая вариация выдаёт права
по результату комбинации бит. Пример:
Командой
мы выдали текущему пользователю, группе и остальным пользователям одинаковые
ПОЛНЫЕ права на просмотр, редактирование и исполнение файла
Первое число отвечает за набор прав для текущего пользователя, второе число - за набор прав для группы, соответственно третье - набор прав остальных пользователей.
Тяжело? Сделаем иначе.
Вашему вниманию: шпаргалка манипуляций с правами на файлы и папки.
По таблице можно обратить внимание, что символьный вид прав визуализирован как некое число, отвечающее за те или иные наборы прав.
Linux представляет их в виде переменных с числовым значением:
R=4
W=2
X=1
Соответственно, чтобы выдать\отнять у одного из трёх носителей прав то или иное право, мы отнимаем это право от общей суммы значений переменных.
Общая сумма - 7. Это полное право возможных манипуляций над файлом, соответственно:
Чтобы отнять право на исполнение у одного из носителя прав, мы отнимаем значение Х (единицу) от общей суммы значений переменных (7).
Выходит 6, или же 4+2, ну или же, как итог RW.
Перейдём в терминал, берём с собой команду
. Первый вывод показал текущие права носителей. Их можно визуализировать как 664.
6 - для пользователя (RW)
6 - для групп (RW)
4 - для остальных пользователей (R)
Для первого файла мы выдали права
777:
Все носители прав имеют набор RWX (полные права на файл)
Для второго файла мы выдали права
771:
Текущий пользователь имеет набор RWX (полные права на файл)
Группа и остальные пользователи имеют набор --X (только исполнение)
Для третьего файла мы выдали права
700:
Текущий пользователь имеет набор RWX (полные права на файл)
Группа и остальные пользователи имеют набор --- (отсутствие прав на просмотр, редактирование и исполнение файла)
Символьная вариация немного проще.
Она позволяет присвоить тому или иному носителю прав символьное значение в виде прямого присвоения переменных.
Ранее мы выяснили, что носители делятся как три части вывода терминала. Представим их в виде одиночных букв:
U (user) - текущий пользователь
G (group) - группа пользователей
O (others) - остальные пользователи
Отныне вместо присвоения тех или иных числовых значений в качестве набора прав для носителей, мы можем использовать выше указанные переменные. Для начала научимся убирать ранее указанные.
Для выдачи\отнятия прав можно пользоваться аргументами
,
и
с комбинацией
и
, в соответствии с целью выдачи\отнятия.
Заберём все права на файл
у всех носителей прав командой
Код:
chmod u-rwx,g-rwx,o-rwx 1.txt
. Получаем нужные изменения:
Так же их можно вернуть отнятое, изменив комбинацию с
на
.
Вернём их немного по другому: пользователю - только чтение, группе - только редактирование, остальным - только исполнение.
Помимо базы, есть удобный сокращающий аргумент
, который может выдавать\отнимать указываемые права на всех трёх носителей.
Давайте его попробуем! Выдадим всем носителям прав полный набор, и заодно для проверки этот набор отнимем:
И напоследок. Помните нашего земляка - пользователя
? Давайте отдадим владение файлом нашему другу командой
. Добьём великомученика
.
Теперь великомученик - это дорогой читатель.
Ты хорошо потрудился!
С каждой статьей ты получаешь всё больше новых знаний и навыков!
Благодарю античат за предоставленную возможность.
Самый ценный ресурс - ваша обратная связь!