diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ab05829 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +*.DS_Store +*/._* +.AppleDouble diff --git a/Solutions_Mishin/1 - Work With Files/1 - Work With Files_task1.md b/Solutions_Mishin/1 - Work With Files/1 - Work With Files_task1.md new file mode 100644 index 0000000..ac951e4 --- /dev/null +++ b/Solutions_Mishin/1 - Work With Files/1 - Work With Files_task1.md @@ -0,0 +1,135 @@ +## Task 1 — Работа в консольке +``` +1. Переместиться между директориями: +[bob@host-3 ~]$ cd Видео +[bob@host-3 Видео]$ + +2. Вывести список файлов в директории: +[bob@host-3 Видео]$ cd ~ (Переместились в домашнюю директорию из-за отсутствия каких-либо файлов в директории Видео) +[bob@host-3 ~]$ ls + Practice Видео Загрузки Музыка 'Рабочий стол' + Test Документы Изображения Общедоступные Шаблоны +[bob@host-3 ~]$ + +3. Вывести список Всех файлов в директории +[bob@host-3 ~]$ ls -a + . .mutt .xprofile + .. Practice .xsession.d + .bash_history .rpmmacros Видео + .bash_logout .ssh Документы + .bash_profile Test Загрузки + .bashrc .vboxclient-clipboard-tty2-control.pid Изображения + .cache .vboxclient-clipboard-tty2-service.pid Музыка + .config .vboxclient-draganddrop-tty2-control.pid Общедоступные + .gnupg .vboxclient-hostversion-tty2-control.pid 'Рабочий стол' + .local .vboxclient-seamless-tty2-control.pid Шаблоны + .lpoptions .viminfo +[bob@host-3 ~]$ + +4. Создать папку с подпапками +[bob@host-3 ~]$ mkdir -p first_dir/second_dir/third_dir/fourth_dir +[bob@host-3 ~]$ ls + first_dir Test Документы Изображения Общедоступные Шаблоны + Practice Видео Загрузки Музыка 'Рабочий стол' +[bob@host-3 ~]$ cd first_dir +[bob@host-3 first_dir]$ ls +second_dir +[bob@host-3 first_dir]$ +И так далее... +(Можно было создать папку и в ней две папки на одном уровне одной командой: mkdir -p -- dir/dir_2 dir/dir_3 - просто пример) + +5. Внутри папки создать файлик и записать в него что-нибудь +[bob@host-3 ~]$ cd Practice +[bob@host-3 Practice]$ touch practice.txt (Можно было и так: touch Practice/practice_2.txt) +[bob@host-3 Practice]$ vim practice.txt (Можно было через echo и >) +В vim'e было проделано следующее: i -> ввели текст -> esc -> :wq +[bob@host-3 Practice]$ cat practice.txt +QuickSort - это база. Спасибо Хоару за победу! +[bob@host-3 Practice]$ + +6. Переместить файл из одно директории в другую +[bob@host-3 ~]$ mv Practice/practice.txt Документы (Действия из домашней директории для удобства) +[bob@host-3 ~]$ cd Документы +[bob@host-3 Документы]$ ls +practice.txt +[bob@host-3 Документы]$ + +7. Скопировать файл из одной директории в другую +[bob@host-3 Документы]$ cp practice.txt /home/bob/Practice +[bob@host-3 Документы]$ cd .. +[bob@host-3 ~]$ cd Practice +[bob@host-3 Practice]$ ls +practice_2.txt practice.txt practice.txt~ +[bob@host-3 Practice]$ cd .. +[bob@host-3 ~]$ cd Документы +[bob@host-3 Документы]$ ls +practice.txt +[bob@host-3 Документы]$ + +8. Переименовать файл +[bob@host-3 Документы]$ mv practice.txt new_practice.txt +[bob@host-3 Документы]$ ls +new_practice.txt +[bob@host-3 Документы]$ + +9. Сравнить содержимое файла +[bob@host-3 Документы]$ diff new_practice.txt /home/bob/Practice/practice.txt +[bob@host-3 Документы]$ (Ничего не вывелось - значит файлы равны) +[bob@host-3 Документы]$ diff -s new_practice.txt /home/bob/Practice/practice.txt +Файлы new_practice.txt и /home/bob/Practice/practice.txt идентичны (Действительно! Флаг -s сообщает о идентичных файлах) +[bob@host-3 Документы]$ + +10. Отсортировать содержимое файла по возрастанию и убыванию (Можно были и короче, но для наглядности это того стоило) +[bob@host-3 Документы]$ touch example.txt +[bob@host-3 Документы]$ nano example.txt +[bob@host-3 Документы]$ cat nano example.txt +QuickSort +- +это +база +. +Если +вы +не +согласны +... + +[bob@host-3 Документы]$ sort example.txt -o sorted_example.txt (Можно было через > или так: sort -o sorted_example.txt example.txt) +[bob@host-3 Документы]$ cat sorted_example.txt + +- +. +... +QuickSort +база +вы +Если +не +согласны +это +[bob@host-3 Документы]$ sort -r example.txt -o revsorted_example.txt (Аналогично пред. sort) +[bob@host-3 Документы]$ cat revsorted_example.txt +это +согласны +не +Если +вы +база +QuickSort +... +. +- +[bob@host-3 Документы]$ + +11. Удалить все папки и файлы +[bob@host-3 Документы]$ cd ~ +[bob@host-3 ~]$ rm -rf Practice (Каталог Practice можно было увидеть до этого, в пред. пунктах. Теперь он удалён) +[bob@host-3 ~]$ ls + Test Документы Изображения Общедоступные Шаблоны + Видео Загрузки Музыка 'Рабочий стол' +[bob@host-3 ~]$ rm -rf Test (Для примера ещё один каталог) +[bob@host-3 ~]$ ls + Видео Загрузки Музыка 'Рабочий стол' + Документы Изображения Общедоступные Шаблоны +[bob@host-3 ~]$ +``` diff --git a/Solutions_Mishin/1 - Work With Files/1 - Work With Files_task2.md b/Solutions_Mishin/1 - Work With Files/1 - Work With Files_task2.md new file mode 100644 index 0000000..570cbb5 --- /dev/null +++ b/Solutions_Mishin/1 - Work With Files/1 - Work With Files_task2.md @@ -0,0 +1,51 @@ +## Task 2 — Перенаправляем + +**1. Как работают команды >,>>?** + +Команда > служит для перенаправления стандартного потока вывода в файл. Есть два типа поведения этой команды: +1. Если файл существует, то вся информация в нём перезапишется той, которую перенаправляют; +2. Если файл не существует, то он будет создан и информация также перезапишется. +Ключевой момент здесь в том, что **вся** информация в файле будет стёрта и перезаписана на новую. + +Команда >> также перенаправляет поток вывода, но она не перезаписывает всю информацию в файле, а **добавляет** её в **конец** файла. Функция создания нового файла сохраняется. + + +**2. Что такое перенаправление ввода? stderr, stdout?** + +Перенаправление ввода - это, по сути, возможность перенаправления того, что пользователь вводит с клавиатуры или того, что передаётся в поток вывода или поток ошибок, в различные места (чаще всего - в файлы). Поток ввода с клавиатуры называют stdin (обозначается цифрой 0 в ОС), поток вывода - stdout (обознач. цифрой 1), поток вывода ошибок - stderr (обознач. цифрой 2). + +stdin часто связан с пользователем и тем, что он вводит с клавиатуры, но этот поток также используется для перенаправления содержимого файла. stdout используется для вывода данных работы программы - результата работы программы. stderr нужен для вывода сообщений об ошибках (как уже было сказано). По умолчанию, stdout и stderr выводят информацию на экран. + + +**3. Выести содержание файла, не используя текстовые редакторы?** + +Чтобы вывыести содержимое файла не используя текстовые редакторы, можно использовать команду `cat`. Она выведет все содержимое файла. `cat имя_файла`. + + +**4. Создать файл с содержимым, не используя текстовые редакторы?** + +Чтобы создать файл с содержимым, не используя текстовые редакторы, можно использовать команду `echo` (для вывода текста или значений в stdout) в сочетании с командой `>` (для перенаправления потока stdout в файл). `echo строка_или_значение > имя_файла`. + + +**5. Пернеаправить stdout в stderr и обратно на примере команд kinit, ping, tracert?** + +Перенаправление stdout в stderr: `kinit имя_пользователя 2> файл_с_ошибками`. Если же нужно перенаправить stdout в stderr напрямую, можно написать так: `kinit (или другая команда) >&2`. + +Перенаправление stderr в stdout: `kinit (или другая команда) 1> файл_с_выводом`. Если же нужно перенаправить stderr в stdout напрямую, можно написать так: `kinit (или другая команда) 2>&1`. + +Для команд ping и tracert работа с перенаправлениями аналогичная. + + +**6. Чем отличаются stdout и stderr?** + +stdout используется для вывода результата **работы** программы, а stderr — для сообщений об **ошибках, диагностических сообщений и предупреждений**. Эти потоки позволяют разделять результаты успешной работы программы и сообщения об ошибках при работе программы. + + +**7. Что такое stdin?** + +stdin (или *стандартный поток ввода*) - это поток данных, поступающий в программу. По умолчанию, данные, которые передаются в этот поток, вводятся пользователем с клавиатуры. + + +**8. Как отправить весь вывод команды в пустоту?** + +Чтобы это сделать, нужно перенаправить поток вывода в файл /dev/null, т. е. `команда > /dev/null`. diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.1-2.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.1-2.png" new file mode 100644 index 0000000..15aa419 Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.1-2.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.1.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.1.png" new file mode 100644 index 0000000..5a68d0b Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.1.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.2.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.2.png" new file mode 100644 index 0000000..b84f585 Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.2.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.3.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.3.png" new file mode 100644 index 0000000..50a685e Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/1.3.3.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/2.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/2.png" new file mode 100644 index 0000000..6995a5a Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/2.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/3.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/3.png" new file mode 100644 index 0000000..3d8f091 Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/3.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/4.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/4.png" new file mode 100644 index 0000000..c40a91d Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/4.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/8.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/8.png" new file mode 100644 index 0000000..9b40452 Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/8.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/9.png" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/9.png" new file mode 100644 index 0000000..c0e8490 Binary files /dev/null and "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/9.png" differ diff --git "a/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/task1.md" "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/task1.md" new file mode 100644 index 0000000..3f97d8e --- /dev/null +++ "b/Solutions_Mishin/2 - User Manage/Lab2. \320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\277\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217\320\274\320\270 (task1)/task1.md" @@ -0,0 +1,112 @@ +*Первую лабу делал на ноуте на винде, теперь работаю с мака, поэтому* +\[bob@host-3 ~]$ *сменился на* \[bob@host-2 ~]$. *Также, с лабы 2 и далее буду добавлять скриншоты для наглядности и удобства.* + +1. Добавьте пользователей user1 и user2: + 1.1) user1 – оболочка bash + 1.2) user2 – оболочка sh + 1.3) установите им пароли + +1.1) Чтобы добавить пользователя user1 в оболочку bash, пропишем следующую команду: ```sudo useradd -m -s /bin/bash user1``` + +1.2) Чтобы добавить пользователя user2 в оболочку sh, пропишем следующую команду: ```sudo useradd -m -s /bin/sh user2``` + +Временно выдали себе права суперпользователя командой sudo; useradd – команда для добавления пользователя; флаг -m позволяет создать домашний каталог пользователя, а флаг -s указать имя оболочки для регистрации пользователя. Флаги можно было объединить вот так: -ms, пока для читаемости написал раздельно. + +![](1.1-2.png) + +1.3) Пароли для пользователей установим при помощи команды passwd: +```sudo passwd user1``` +```sudo passwd user2``` + +![](1.3.1.png) +![](1.3.2.png) +![](1.3.3.png) + +2. Назначьте пользователю 1 группу администраторов, пользователя 2 добавьте в группу пользователя 1. + +Чтобы добавить пользователя 1 в группу администраторов, применим следующую команду: ```sudo usermod -aG wheel user1``` + +Здесь, usermod - команда, которая позволяет изменять настройки пользователя; флаг -a добавляет пользователя в те группы, которые указаны после флага -G (не удаляя пользователя из других групп). В нашем случае это группа администраторов wheel. + +Создадим группу пользователя 1 (выяснилось, что она и так появилась после создания пользователя) (1), сделаем user1 основным владельцем своей группы (снова выяснилось, что это уже так) (2). После, добавим пользователя 2 в группу первого пользователя (снова используя команду выше, только поменяв wheel на user1 и user1 на user2) (3): + +(1) ```sudo groupadd user1``` (groupadd - команда для создания новой группы) +(2) ```sudo usermod -g user1 user1``` +(3) ```sudo usermod -aG user1 user2``` + +![](2.png) + +3. Что такое права доступа? Выведите права доступа на файлы в директории пользователя. + +Права доступа - это функционал, который позволяет регулировать, каким пользователям, какие функции доступны для работы с файлами и каталогами. + +Соответственно, существуют три типа пользователей: +1. Владелец файла (каталога) - user (u); +2. Член группы файла (каталога) - group (g); +3. Остальные пользователи - others (o) + +И три типа действия с файлами и каталогами: +1. Изменение файла (запись) или добавление (удаление) файлов из каталога - write (w); +2. Чтение файла или каталога - read (r); +3. Выполнение программы (скрипта) или вход в директорию - execute (x) + +Выводим права доступа на файлы в директории пользователя: ```ls -l```. Перед этим нужно ещё перейти в директорию пользователя, но т. к. мы уже в ней, то этот этап был пропущен. + +![](3.png) + +4. Как изменить права на файлы? Создайте файл который, на который у всех пользователей будут всевозможные права. + +Права на файлы можно изменить при помощи команды chmod. Создадим для начала файл, для которого будем выдавать права: ```touch some_file.txt``` + +После, выдадим всем пользователям все права на файл: +```chmod a+rwx some_file.txt``` +(a - выдать всем пользователям, можно было написать просто ugo; +rwx - read, write, execute, соответственно). + +Также, можно было использовать числовую нотацию: +```chmod 777 some_file.txt``` +(здесь первая 7 - права для владельца, вторая - для группы, третья - для остальных пользователей). +Почему 7? Каждому праву присвоено числовое значение: r - 4; w - 2; x - 1, поэтому все права - это сумма 4 + 2 + 1 = 7. + +![](4.png) + +Видим, что для файла some_file.txt вывелось -rwxrwxrwx - это значит, что для этого файла все пользователи имеют всевозможные права. + +5. Как называется учётная запись встроенного администратора в Linux? + +Такая учётная запись называется *root*. + +6. Как выполнить команду от имени администратора? + +Чтобы выдать временные права администратора (на одну команду) нужно использовать команду ```sudo```. Можно также зайти под рута командой: ```su -l``` или ```su -``` и выполнять все команды от имени администратора. + +7. Есть ли ограничения у суперпользователя? + +Ответ на этот вопрос не так очевиден. На первый взгляд, рут всемогущен, но это не совсем так. + +Например, рут (и тем более другие пользователи) не могут изменять неизменяемые (immutable) файлы, но рут может снять атрибут immutable с файла, и он сразу сможет быть изменен (перезаписан, дописан, удалён и т. д.). + +Ещё один пример: если мы имеем дело с файловой системой, смонтированной в режиме *только для чтения (read-only)*, даже рут не сможет ничего записать в эту файловую систему, но рут может перемонтировать её в режим *чтения и записи* и спокойно записать в неё нужную информацию. + +Также, рут может испытывать ограничения, при работе с сетью. Без разрешающего параметра CAP_NET_RAW даже рут не сможет создавать свои пакеты с нуля. Работая в изолированном сетевом пространстве, рут будет испытывать ограничения, т. к. ему будет ограничен доступ к различным ресурсам этого пространства. Права он будет иметь, но у него не будет доступа. Ещё рут не сможет принять входящие подключения, если сеть была защищена системным фаерволом. + +Ну и наконец, настройки, ограничивающие доступ к настройкам загрузчика и ядра, могут быть установлены на уровне BIOS (UEFI) или при помощи механизма SELinux, и для рута обойти всё это будет довольно трудно. + +8. Удалите пользователя 2 с помощью пользователя 1. + +Чтобы это сделать, сначала залогинимся под user1: ```su - user1```, потом применим следующую команду: ```sudo userdel -r user2```. + +userdel - это команда для удаления пользователей, флаг -r нужен для того, чтобы вместе с пользователем удалить его домашний каталог и почту. + +![](8.png) + +9. Как можно изменить владельца папки? Измените владельца папки из пункта 4. + +В пункте 4 мы создавали файл some_file.txt, я сохранил его в домашней директории пользователя bob. Изменить владельца домашней директории по понятным причинам не получится, поэтому я создам отдельный каталог и перемещу туда файл some_file.txt (для "синхронизации" с 4 пунктом). Для этого каталога и поменяем владельца. + +![](9.png) + +На скриншоте видно, что мы создали каталог some_directory, переместили в неё файл из 4 пункта, проверили, кто является владельцем этого каталога (сначала, это bob). Потом применили команду: +```sudo chown user1 some_directory``` и снова проверили владельца каталога (на этот раз это user1). + +chown - это команда для смены пользователя файла / каталога. diff --git a/Solutions_Mishin/2 - User Manage/foo.txt b/Solutions_Mishin/2 - User Manage/foo.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Solutions_Mishin/2 - User Manage/foo.txt @@ -0,0 +1 @@ + diff --git a/Solutions_Mishin/foo.txt b/Solutions_Mishin/foo.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Solutions_Mishin/foo.txt @@ -0,0 +1 @@ +