Методичка

----------------------------------------------------------------------------------

pwd - абсолютный путь до текущей директории

ls [<путь до директории>] - список файлов и папок
с флагом -l показывает показывает метаданные
с флагом -a показывает скрытые файлы

cd <путь до папки> - перейти в директорию

touch <имя файла> - создание файла
cat <путь до файла> - чтение файлов

nano <путь до файла> - текстовый редактор

mkdir <название директории> - создание новой директории

rm <путь до файла> - удаление файлов
с флагом -r удаляет директории
с флагом -f удаляет принудительно

----------------------------------------------------------------------------------

Пути
. - текущая директория
.. - родительская директорияssh student@31.163.204.186 -p 2222 - подключение к виртуальному серверу на паре


useradd -m -s /bin/bash <username>

Пути, начинающиеся с "/" называются абсолютными.
Все остальные пути называются относительными

----------------------------------------------------------------------------------
фамилияио
boldyrevbm

ssh <username>@<ip addres> -p 22
с флагом -p подключается к определенному порту. 22 порт - по умолчанию

sudo - запуск команд от имени суперпользователя (root)

useradd -m -s <shell> <username> - создает пользователя. Запускается только от имени суперпользователя
с флагом -m создает домашнюю директорию пользователя
с флагом -s указывается путь до оболочки, в которой будет запускаться пользователь
shell - лучше указывать /bin/bash

passwd <username> - установить пароль для пользователя. Запускается только от имени суперпользователя

ssh student@31.163.204.186 -p 2222 - подключение к виртуальному серверу на паре

exit - выход из пользователя

sudo usermod -aG <groupname> <username> - добавление пользователя в группу

sudo usermod -aG sudo <username> - добавление пользователя в группу sudo, чтобы выдать права суперпользователя

grep <search string> - ищет search string внутри переданных данных. Выводит в консоль найденные строки. Если ничего не найдено, ничего не выводит.


| - передает данные между командами

cat /etc/passwd | grep <username> - найти данные о пользователе внутри файла /etc/passwd

----------------------------------------------------------------------------------

chmod <для кого><+/-><какие права изменить> <путь> - изменяет права доступа
права
для кого:
u - пользователь владелец файлы
g - владеющая группа
o - все, кроме u и g
a - все

права:
d - директория
r - чтение
w - запись
x - запуск

в выводе ls -l:
<директория или файл><права владельца><права группы><права для всех> <владелец> <группа>

дать/отнять
"-" - убрать право
"+" - добавить

Пример:
chmod a-r somedir
chmod o+rx somedir

chown [<username>]:[<group>] <path> - изменение владельца и/или владеющей группы
username - новый владец
group - владеющая группа
path - путь до директории или до файла
-R - изменяет рекурсивно

chown student somefile - изменить владельца файла на student
chown :students somedir - изменять владеющую группу для директории
chown student:students

----------------------------------------------------------------------------------

groupadd <название_группы> - создание новой группы в системе

groupdel <название_группы> - удаление группы

groups <имя_пользователя> - выводит список групп, в которых состоит пользователь

usermod -aG <название_группы> <имя_пользователя> - добавление пользователя в группу. Флаг -a используется вместе с -G для добавления без удаления из старых групп

gpasswd -d <имя_пользователя> <название_группы> - удаление конкретного пользователя из конкретной группы

cat /etc/group - просмотр списка всех созданных групп в системе

Примеры использования:
sudo groupadd developers
sudo usermod -aG developers boldyrevbm
groups boldyrevbm
cat /etc/group | grep developers

Задание

Важно: выполняйте все действия внутри своей домашней папки. Заменяйте слово LOGIN на свой логин.

Создание структуры папок
В своей домашней директории создайте две папки: private и exchange
Внутри папки private создайте файл passwords.txt
Внутри папки exchange создайте файл readme.txt

Работа с группами и пользователями
Создайте новую группу с названием LOGIN_guest_grp
Создайте нового пользователя с именем LOGIN_guest
Добавьте созданного пользователя в вашу новую группу LOGIN_guest_grp
Установите пароль для LOGIN_guest (например, 123)

Ограничение доступа к личным файлам
Настройте права на папку private так, чтобы только вы имели к ней доступ (чтение, запись, вход). Группа и остальные пользователи не должны иметь никаких прав
Убедитесь с помощью ls -l, что права выглядят как drwx------

Настройка папки для обмена
Смените владеющую группу для папки exchange на LOGIN_guest_grp
Установите права на папку exchange так, чтобы вы и участники группы LOGIN_guest_grp могли читать и записывать файлы, а все остальные пользователи сервера не имели доступа
Установите такие же права для файла readme.txt внутри этой папки

Проверка прав (контроль)
Переключитесь на пользователя LOGIN_guest через команду su - LOGIN_guest
Попробуйте зайти в папку private (система должна отказать в доступе)
Зайдите в папку exchange и попробуйте изменить файл readme.txt через nano
Вернитесь в своего основного пользователя (команда exit) и проверьте через ls -l, кто теперь числится владельцем и группой для измененного файла