Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
32dbb0e
task1
apatacheck Oct 26, 2025
14beec4
image
apatacheck Oct 26, 2025
300838a
new
apatacheck Oct 26, 2025
7c9eee1
newnew
apatacheck Oct 26, 2025
e691152
newnewnew
apatacheck Oct 26, 2025
07d4d58
be
apatacheck Oct 26, 2025
4dce308
test
apatacheck Oct 26, 2025
5797f13
answers
apatacheck Oct 29, 2025
ab23b84
task1/1
apatacheck Oct 29, 2025
0d01f0f
task13
apatacheck Nov 9, 2025
b3d9d29
Update task1.md
apatacheck Nov 9, 2025
349d5e1
task3
apatacheck Nov 10, 2025
cfdd25b
Update task3.md
apatacheck Nov 10, 2025
b349bbd
Update task3.md
apatacheck Nov 10, 2025
7a41466
task34
apatacheck Nov 10, 2025
df1fb8f
Update task1.md
apatacheck Nov 10, 2025
a52d035
Update task1.md
apatacheck Nov 10, 2025
bb213e3
Update task1.md
apatacheck Nov 10, 2025
3634c1e
Update task1.md
apatacheck Nov 10, 2025
820e48d
task32
apatacheck Nov 10, 2025
102974e
newnew
apatacheck Nov 10, 2025
d891ae1
Bash
apatacheck Nov 11, 2025
9f716a6
Update task2.md
apatacheck Nov 11, 2025
35c0979
newnew
apatacheck Nov 12, 2025
f8c6c5b
new
apatacheck Nov 12, 2025
01c2df3
Update task1.md
apatacheck Nov 13, 2025
4463361
new
apatacheck Nov 14, 2025
a547396
Merge remote-tracking branch 'origin/master2' into master2
apatacheck Nov 14, 2025
d333738
Update task1.md
apatacheck Nov 14, 2025
43aeff4
new
apatacheck Nov 14, 2025
da929d1
Merge remote-tracking branch 'origin/master2' into master2
apatacheck Nov 14, 2025
0e41369
Update task2.md
apatacheck Nov 14, 2025
c8e7c90
Update task3.md
apatacheck Nov 14, 2025
977386c
Update task1.md
apatacheck Nov 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/task_241.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion 1-Work whith files/task1.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
8) переименовать файл
9) сравнить содержимое файла
10) отсортировать содержимоей файла по возрастанию и убыванию
11) удалить все папки и файлы
11) удалить все папки и файлы
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
81 changes: 81 additions & 0 deletions answers/1-Work whith files/task1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#### 1. Переместиться между директориями
Перемещение между директориями через команду cd.

![Перемещение между директориями](images/Pasted%20image%2020251022193155.png)

---
#### 2. Вывести список файлов в директории
Вывод список файлов через команду ls.

![Список файлов в директории](images/Pasted%20image%2020251022195205.png)

---
#### 3. Вывести список ВСЕХ файлов в директории
Команда ls -a выводит все файлы и папки в текущей директории, включая скрытые файлы.

![Список всех файлов включая скрытые](images/Pasted%20image%2020251022195421.png)

---
#### 4. Создать папку с подпапками
Команда mkdir -p создает директории рекурсивно. Данные команды создали папку task1, а в ней папки num1 и num2.

![Создание папки с подпапками](images/Pasted%20image%2020251022195717.png)

![Структура созданных папок](images/Pasted%20image%2020251022200824.png)

![Подтверждение создания папок](images/Pasted%20image%2020251022200841.png)

---
#### 5. Внутри папки создать файлик и записать в него что-нибудь.
Командой cd переместилась в папку num1, при помощи команды cat создала файл new.txt и вписала в него буквы в алфавитном порядке.

![Создание файла в папке](images/Pasted%20image%2020251022200048.png)

![Содержимое созданного файла](images/Pasted%20image%2020251022200933.png)

---
#### 6. Переместить файл из одной директории в другую
Команда mv переместила созданный файл в папку num2.

![Перемещение файла между папками](images/Pasted%20image%2020251022200340.png)

![Подтверждение перемещения файла](images/Pasted%20image%2020251022201014.png)

---
#### 7. Cкопировать файл из одной директории в другую
Команда cp скопировала файл new.txt в первоначальную директорию num1.

![Копирование файла](images/Pasted%20image%2020251022200604.png)

---
#### 8. Переименовать файл
Команда mv переименовала файл new.txt в old.txt.

![Переименование файла](images/Pasted%20image%2020251022201229.png)

---
#### 9. Сравнить содержимое файла
Команда diff находит разницу между двумя файлами и выводит её.

![Сравнение одинаковых файлов](images/Pasted%20image%2020251022201839.png)

Теперь изменим один из файлов при помощи команды cat, после этого команда diff выведет разницу между двумя файлами.

![Сравнение измененных файлов](images/Pasted%20image%2020251022202445.png)

---
#### 10. Отсортировать содержимое файла по возрастанию и убыванию
Сортировка по возрастанию при помощи команды sort:

![Сортировка по возрастанию](images/Pasted%20image%2020251022202707.png)


Сортировка по убыванию при помощи команды sort -r:

![Сортировка по убыванию](images/Pasted%20image%2020251022202747.png)

---
#### 11. Удалить все папки и файлы
Командой rm -rf, рекурсивно удаляю все папки и файлы без подтверждения.

![Удаление всех папок и файлов](images/Pasted%20image%2020251022202853.png)
72 changes: 72 additions & 0 deletions answers/1-Work whith files/task2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@

#### 1) Как работают команды >,>>?
Операторы перенаправления вывода в командной строке:

**>** : Записывает вывод команды в файл, если файл существует, он будет перезаписан, если файла нет, он будет создан, пример:

![Пример команды >](images/Pasted%20image%2020251026205036.png)

**>>** : Добавляет вывод команды в конец файла, если файл существует, вывод допишется в конец, если файла нет, он будет создан, пример:

![Пример команды >>](images/Pasted%20image%2020251026205235.png)

---
#### 2) Что такое перенаправление ввода? stderr,stdout;
Перенаправление ввода/вывода (I/O redirection) — это механизм командной оболочки, который позволяет изменять стандартные потоки ввода (клавиатура), вывода (экран) и ошибок (сообщения об ошибках) и направлять их в другие места, например, в файлы или на другие программы.
**STDOUT (standard output)** — это стандартный поток вывода в компьютерных программах, который по умолчанию направляется на экран монитора. Через него программы выводят обычные результаты своей работы
**STDERR (standard error)** — это стандартный поток ошибок, который используется программами для вывода диагностических и отладочных сообщений. По умолчанию сообщения из `stderr` выводятся на экран терминала.

---

#### 3) Вывести содержание файла не используя текстовые редакторы;
Выведу содержание файла при помощи команды `cat`.

![Команда cat](images/Pasted%20image%2020251026210424.png)

---
#### 4) Создать файл с содержимым не используя текстовые редактор;
Cоздам новый файл с текстом при помощи команды `cat`.

![Создание файла cat](images/Pasted%20image%2020251026210454.png)

---
#### 5) Перенаправить stdout в stderr и обратно на примере команды kinit, ping, tracert

**Обычный вывод команды `ping`**, стандартный вывод и вывод ошибок происходит прямо в консоль:

![Обычный вывод ping](images/Pasted%20image%2020251028210610.png)

**Перенаправление `stdout` $\Rightarrow$ `stderr`**, команда на картинке пингует сайт 2 раза, перенаправляет `stdout` в файл out.txt, далее перенаправляет первый поток(`stdout`) во второй(`stderr`). Из-за последнего шага весь вывод `stdout` отправляется в консоль, а файл out.txt остается пустым:

![stdout в stderr](images/Pasted%20image%2020251028211105.png)

**Перенаправление `stderr` $\Rightarrow$ `stdout`**, команда на картинке пингует несуществующий хост 2 раза, при этом перенаправляет `stdout` в файл outt.txt, а далее перенаправляет `stderr` в `stdout`. После этого вывод `stderr` будет происходить не в консоль, а в то же место, куда и происходит вывод `stdout`, т.е. в текстовый файл.

![stderr в stdout 1](images/Pasted%20image%2020251028212006.png)

![stderr в stdout 2](images/Pasted%20image%2020251028212121.png)

**Обычной вывод команды traceroute**, стандартный вывод и вывод ошибок происходит прямо в консоль: :

![Обычный вывод traceroute](images/Pasted%20image%2020251029175738.png)

**Перенаправление `stdout` $\Rightarrow$ `stderr`**:
![stdout в stderr traceroute](images/Pasted%20image%2020251029175854.png)

**Перенаправление `stderr` $\Rightarrow$ `stdout`**:
![stderr в stdout traceroute](images/Pasted%20image%2020251029175944.png)
#### 6) Чем отличаются stdout и stderr
**STDOUT (standard output)** — это стандартный поток вывода в компьютерных программах, который по умолчанию направляется на экран монитора. Через него программы выводят обычные результаты своей работы. Соответствует дескриптору 1.
**STDERR (standard error)** — это стандартный поток ошибок, который используется программами для вывода диагностических и отладочных сообщений. По умолчанию сообщения из `stderr` выводятся на экран терминала. Соответствует дескриптору 2. В отличии от **STDOUT**, чаще всего не буфезируется или использует минимальную буферизацию, это значит что все ошибки выводятся немедленно.

---
#### 7) Что такое stdin?
**STDIN** (standard input) — это поток данных, который используется программами для получения информации извне. По умолчанию в командной строке `stdin` ассоциируется с клавиатурой, но его можно перенаправить для чтения из файла или вывода другой программы.

---
#### 8) Как отправить весь вывод команды в пустоту?
Чтобы отправить весь вывод команды в никуда ), нужно перенаправить STDOUT (стандартный поток вывода) и STDERR (стандартный поток ошибок) в специальный файл /dev/null.

---
![](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)

71 changes: 71 additions & 0 deletions answers/2-User manage/task1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Управление пользователями

#### 1. Добавьте пользователей user1 и user2:
1.1) user1 - оболочка bash
1.2) user2 - оболочка sh
1.3) установите им пароли

Добавляю пользователя с оболочкой bash и устанавливаю пароль:

![Добавление пользователя bash](images/Pasted%20image%2020251028233621.png)

Добавляю пользователя с оболочкой sh и устанавливаю пароль:

![Добавление пользователя sh](images/Pasted%20image%2020251028233720.png)

---
#### 2. Назначьте пользователю 1 группу администраторов, пользователя 2 добавьте в группу пользователя 1.

Добавляю (`append group`) user1 в группу `wheel` (администратора):

![Добавление в группу wheel](images/Pasted%20image%2020251028233847.png)

Добавляю user2 в группу user1:

![Добавление в группу user1](images/Pasted%20image%2020251028234033.png)

---
#### 3. Что такое права доступа? Выведите права доступа на файлы в директории пользователя.

Права доступа - механизм, который определяет, какие действия (чтение, запись, выполнение) разрешены пользователям с файлами и папками в системе. Эти права назначаются трем категориям пользователей: владельцу, группе и всем остальным (others).
Команда `ls -l` показывает подробное содержимое тек. директории, т.к. user1 - новый пользователь, в итоге выведет: "Итого 0":

![Права доступа ls -l](images/Pasted%20image%2020251029000412.png)

---
#### 4. Как изменить права на файлы? Создайте файл который будет на который у всех пользователей будут все возможные права.

Чтобы изменить права доступа к файлам используется команда `chmod` (change mode). Каждое право имеет числовое значение: - `r` (чтение) = **4**, `w` (запись) = **2**, `x` (выполнение) = **1**. Права суммируются для каждой группы. Запись из 3 цифр обозначает права для каждой из групп, где первая цифра - `владелец`, вторая - `группа`, третья - `остальные`.
Cоздаем файл myfile.txt, первой командой `chmod` убираем ВСЕ права у ВСЕХ категорий пользователей. Второй командой, при помощи записи "`777`" (4+2+1, 4+2+1, 4+2+1) устанавливаем для ВСЕХ пользователей ВСЕ права.

![Изменение прав chmod](images/Pasted%20image%2020251029000751.png)

---
#### 5. Как называется учётная запись встроенного администратора в linux?

Основная встроенная учетная запись суперпользователя - **root**.

---
#### 6. Как выполнить команду от имени администратора?
1. `sudo /команда/`
Выполнить команду от имени администратора.
2. `su -`
Переключиться на `root` и далее все команды будут происходить под суперпользователем.

---
#### 7. Есть ли ограничения у суперпользователя?
Нет, суперпользователь может делать в системе всё, что система в принципе способна делать.

---
#### 8. Удалите пользователя 2 с помощью пользователя 1.
При помощи команды `userdel` можно удалить `user2`, при этом находясь под `user1`:

![Удаление пользователя](images/Pasted%20image%2020251029002740.png)

#### 9. Как можно изменить владельца папки? измените владельца файла из пункта 4
Для изменения владельца папки используется команда **`chown`** (change owner).
Команда `chown`, новый владелец - `root`, новая группа - `root`, файл - `myfile.txt`:

![Изменение владельца chown](images/Pasted%20image%2020251029003004.png)

---
22 changes: 22 additions & 0 deletions answers/2-User manage/task2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

#### 1. Запретите пользователю user1 из предыдущего задания выполнять вход в систему
Команда изменяет командную оболочку пользователя `user1` на `/sbin/nologin`

![Запрет входа nologin](images/Pasted%20image%2020251029180357.png)

---

#### 2. Как вы это сделали?
`nologin` -  специальная оболочка в Linux, которая используется для запрета входа в систему для учётной записи . Моя команда из задания 1 изменяет командную оболочку пользователя `user1` на `/sbin/nologin`. При последующей попытке входа в консоль будет выводиться сообщение: "`this account is currently not available.`"

---
#### 3. Какие ещё способы это сделать вы знаете?
Можно запретить вход в систему при помощи блокировки пароля пользователя, существует 2 cпособа:

![Блокировка пароля 1](images/Pasted%20image%2020251029181131.png)

![Блокировка пароля 2](images/Pasted%20image%2020251029181242.png)

---
#### 4. Можно ли создать пользователей с одинаковыми username?
Нет, это невозможно, при создании второго пользователя с чужим уже существующим именем появится ошибка: "`useradd: user 'user1' already exists`"
Loading