
1. Создание пользователей. Задание паролей. Сброс пароля пользователя
- Создать две учетные записи пользователей:
vlad,alex.
Создание пользователя vlad
Создание пользователя alex
Пароли: 1234 и 2345 соответственно
- Задать пользователям одинаковые пароли

Заданный пароль: 12
- Проанализировать файл
/etc/shadowи/etc/passwd. Сделать соответствующие выводы.
Файл /etc/passwd
Файл /etc/shadow
Пароль пользователя parallels был скрыт.
Видим, что пользователям vlad и alex были заданы UID 1001 и 1002 и GID 1001 и 1002 соответственно. Видим, что UID совпадает с GID.
Также несмотря на то, что мы задали одинаковые пароли, хэш паролей различается из-за соли.
- Из файла
/etc/shadowудалить свертку пароля пользователяvlad.
Использованная команда для редактирования файла: nano.

- Проверить, каким образом
vladвойдет в систему. Сделать выводы.
Вход был выполнен без пароля.

- В файле
/etc/shadowзаменить свертку пароля для пользователяvladсверткой пароляalex.
Использованная команда для редактирования файла: nano.

- Проверить, каким образом
vladвойдет в систему. Сделать выводы.

Для входа потребовался пароль. Пароль 12 подошел. То есть, мы видим, что замена хэша пароля меняет пароль.
2. Создание пользователей вручную
- Вручную (без использования команды
useraddилиadduser) добавить пользователяdasha.
Воспользуемся командой vipw с выбором редактора nano, чтобы другие команды не пробовали модифицировать его в это же время.
Добавленный пользователь dasha в файле /etc/passwd
Создание домашней директории для пользователя dasha
Проверка домашней директории для пользователя dasha
- Пароль пользователя задать вручную (без использования команды
passwd).
С помощью редактора nano добавим новую строчку, содержащую данные о пользователе dasha. Хэш пароля возьмем от двух других пользователей.
Добавленный пользователь dasha в файле /etc/shadow
- Задать ограничения на пароль вручную, время действия пароля 3 дня (без использования команды
passwd).
.jpg)
Добавление времени действия пароля для пользователя dasha
- Задать ограничения на пароль вручную, предупреждать о смене пароля за 5 дней (без использования команды
passwd), убедиться в наличии предупреждений.
Добавление количества дней перед уведомлением об истечении срока пароля для пользователя dasha
Проверка предупреждения
3. Добавление пользователей в привилегированную группу (sudoers)
- Добавить пользователю
dashaвозможность выполнять команды от имени пользователяvladс запросом пароля.
1
sudo visudo
Добавление пользователю dasha возможности выполнения команд от имени vlad
- Убедиться в возможности выполнения команд от имени пользователя
vlad
Выполнение команды whoami от имени пользователя vlad для dasha
- Добавить пользователю
annaвозможность выполнять команды от имени пользователяalexбез запроса пароля.
Для выполнения задания был создан пользователь
anna
Добавление пользователю anna возможности выполнения команд от имени alex
Выполнение команды whoami от имени пользователя alex для anna
4. Разграничение прав пользователей
- Создать двух пользователей
donaldиrichard.
Создание пользователя donald
Создание пользователя richard
- В директории
/tmpсоздать файлmagic.
Создание файла magic в директории /tmp
- Настроить его ACL таким образом, чтобы
donaldимел полный доступ к файлу, аrichardмог только читать из него.
Настройка ACL для пользователей donald и richard
1
sudo sysctl fs.protected_regular=0s
- Убедиться, что права настроены правильно, для этого записать от имени
donaldданные файл, а затем считать их от имениrichard. Затем попробовать записать от имениrichardи убедиться, что это сделать невозможно.
Запись в файл magic от имени donald
Чтение файла magic от имени richard. Попытка записи в файл magic от имени richard
5. Рекурсивная настройка прав директорий
- В директории
/tmpсоздать следующую структуру файлов:

Создание структуры файлов в директории /tmp
- Рекурсивно установить ACL права на всю указанную выше структуру так, чтобы
donaldмог писать в каждую поддиректорию.
Установка ACL прав на всю структуру для пользователя donald
- Убедиться в правильности установки прав, создав следующую структуру от имени
donald:

Создание файлов пользователе donald
Созданные файлы
6. ACL по умолчанию
- В директории
/*tmpсоздать поддиректориюincredible.*
Создание директории incredible
- Установить на эту директорию ACL по умолчанию таким образом, чтобы
donaldмог только читать файлы, размещённые в нём, аrichardмог только записывать в файлы в нём.
Установка ACL на директорию incredible для пользователей donald и richard
- Убедиться, что права настроены правильно, для этого создать файл
methodв этой директории и попробовать записать в него данные сначала от имениdonald, убедиться, что это невозможно, а затем от имениrichard. Аналогично, попробовать считать данные по очереди за каждого из созданных пользователей.
Создание файла method
Попытка записи в файл method пользователем donald
Запись в файл method и попытка чтения method пользователем richard
Чтение файла method пользователем donald
- Создать ещё один файл
cheeseвtmp. Установить его права в ACL так, чтобыrichardмог из него читать. Убедиться, чтоrichardимеет возможность читать изcheese. Для этого от имениrichardзаписать в него данные, а затем вывести его содержимое на экран.
Создание в директории tmp файла cheese
Установка прав для пользователя richard для файла cheese
Запись и чтение пользователем richard файла cheese
7. Эффективная маска
- Создать в директории
/tmpфайлhistoryи записать в него произвольный текст.
Создание файла history в директории tmp
- Модифицировать ACL: дать пользователю
donaldправо на чтение и запись вhistory.
Установка прав ACL пользователю donald для файла history
- Установить в ACL этого файла эффективную маску так, чтобы никто не мог записывать в файл.
Установка эффективной маски для файла history
- Убедиться в том, что
donaldне может ничего записать вhistory, но может из него считать.
Попытка записи и чтение файла history пользователем donald
8. Копирование ACL
- Создать в директории
/tmpфайлыnotebookиillusionи записать в них текстовую информацию. Установить этим файлам стандартные UNIX-права660, чтобыdonaldиrichardне имели доступа к файлам.
Создание файлов notebook и illusion и запись в них текста
Установка стандартных UNIX–прав для файлов notebook и illusion
- Настроить ACL правила
notebookтак, чтобыdonaldмог читать из него, а правилаillusionтак, чтобы из него мог читатьrichard.
Установка прав ACL для файлов notebook и illusion
- Убедиться, что каждый из пользователей может читать из соответствующего файла.
Чтение файла notebook пользователем donald
Чтение файла illusion пользователем richard
- Скопировать ACL из файла
notebookв файлillusion.
Копирование ACL из notebook в illusion
- Убедиться, что из файла
illusionможет читать только пользовательdonald.
Попытка чтения файла illusion пользователем richard
Чтение файла illusion пользователем donald
Выводы
В данной лабораторной работе были отработаны навыки создания пользователей при помощи команд и вручную. Также настройка sudoers для исполнения команд от имени других пользователей. Также были отработаны всевозможные варианты настройки ACL прав.
Контрольные вопросы
1. Перечислите основные команды для работы с пользователями и группами
useradd&adduseruserdel&delusergroupadd&addgroupnewusersuserspasswdsusudo
2. Почему нужны два разных файла `/etc/passwd` и `/etc/shadow`, почему нельзя использовать один из них?
В файле /etc/passwd хранится общая информация о пользователях.
В файле /etc/shadow хранится информация о паролях пользователей.
Некоторые командам нужна информация о пользователях, например для нахождения UID по именам пользователей или наоборот. Поэтому файл /etc/passwd общедоступен и каждый его может прочитать. А критически важная информация уже хранится в /etc/shadow и доступ к ней имеет только root.
3. Зачем нужны SUID и SGID и Stickybit?
SUID
Пусть пользователь хочет сменить пароль, тогда ему для этого нужны права для записи в файл /etc/shadow. Однако, файл /etc/shadow доступен только root. Так, пользователь не смог бы сменить пароль. Но благодаря SUID–биту установленному для команды passwd, эта команда запускается от имени root, что позволяет пользователю сменить пароль. Так, при использовании команды passwd с этим битом, пользователь временно получает права root.
SGID
SGID аналогичен SUID — файл будет запущен от имени группы владельца файла.
Обычно его используют для директорий, чтобы автоматически устанавливать группу владельца для поддиректорий такой же как у главной директории.
Sticky bit
Например, мы создали общую папку для пользователей. Пользователь имеет право туда писать. Однако, так, он также может удалить абсолютно всё из этой папки. Но, установив sticky бит на эту директорию, пользователь в этой директории сможет удалить только те файлы, владельцем которых он является.
4. Зачем в Linux были введены списки контроля доступа?
Потому что с обычными правами невозможно задать права для нескольких пользователей или групп сразу.
5. Какие базовые утилиты используются для управления ACL?
getfaclsetfacl
6. Зачем нужны ACL по умолчанию?
Для того, чтобы эти ACL автоматически устанавливались для новых созданных файлов или директорий.
7. Как понять, что для файла установлен ACL?
При вызове команды ls -l в конце прав будет символ +.
8. Чем лучше воспользоваться, когда необходимо разрешить
выполнение конкретного исполняемого файла конкретному пользователю, ACL или прописать правило в sudoers?</font>
В случае, если выполнение нужно было бы от имени root, я бы воспользовался ACL, так как, удалив файл, удалятся и привилегии. А, если мы удалили этот исполняемый файл, но sudoers не изменили, то можно создать файл и запустить его. С точки зрения пентеста.
В ином случае, лучше воспользоваться sudoers.