WSL 2: изучаю глубже, установка «Ubuntu» 23.04 (Lunar Lobster), часть 3

Aug 30, 2023 04:26

Начало:
1. WSL 2: изучаю глубже, установка «Ubuntu» 23.04 (Lunar Lobster)
2. WSL 2: изучаю глубже, установка «Ubuntu» 23.04 (Lunar Lobster), часть 2

Начало настройки дистрибутива: что такое «root»

В предыдущих постах я описал, как установил дистрибутив операционной системы «Ubuntu» версии 23.04 (Lunar Lobster) из файла формата «tar» для работы через подсистему WSL моей операционной системы «Windows 10». После установки операционной системы ее обычно настраивают, но этот процесс невозможно описать во всей полноте, так как он никогда не заканчивается и различается в зависимости от целей пользователя. Но обычно первая вещь, которую настраивают после установки операционной системы - это создание учетной записи (записей) пользователя и настройка прав для каждого пользователя.

Сразу после установки дистрибутива «Ubuntu» версии 23.04 (Lunar Lobster) в предыдущем посте я запустил этот дистрибутив и получил в окне консоли следующую картину:



Обратите внимание на строку приглашения ко вводу команд на приведенной выше иллюстрации:

root@IlyaComp:/mnt/c#

По этой строке приглашения видно, что в только что установленном дистрибутиве уже есть учетная запись пользователя с именем root и при первом запуске дистрибутива мы заходим в операционную систему «Ubuntu» от имени этого пользователя и с его правами. Этот пользователь имеет все возможные права и может делать внутри установленного дистрибутива всё, что угодно. Такого пользователя еще называют «суперпользователем» из-за того, что он имеет все возможные права.

Кстати, символ решётки #, завершающий строку приглашения ко вводу команд, обозначает, что в данный момент мы работаем с правами суперпользователя.

По умолчанию для пользователя с именем «root» пароль не установлен.

* * *

Я плохо разбираюсь в настройках безопасности операционной системы «Ubuntu». При составлении плана действий по настройке безопасности я руководствовался тремя источниками:

1. Подраздел «Set up your Linux username and password» (создание ваших имени пользователя и пароля в дистрибутиве «Linux») в статье «Set up a WSL development environment» (развертывание окружения для разработки с помощью подсистемы WSL) в документации подсистемы WSL на сайте компании «Microsoft»;

2. Подраздел «Add WSL specific components like a default user» (добавление специфических для подсистемы WSL настроек вроде пользователя дистрибутива «Linux» по умолчанию) в статье «Import any Linux distribution to use with WSL» (импорт дистрибутива «Linux» для использования через подсистему WSL) в документации подсистемы WSL на сайте компании «Microsoft»;

3. Статья «How to Add and Delete Users on Ubuntu 20.04» (как добавлять и удалять пользователей в системе «Ubuntu» версии 20.04; статья хоть и относится к другой версии системы «Ubuntu», но еще актуальна).

* * *

Насколько я понял, из соображений безопасности не рекомендуется работать под учетной записью суперпользователя «root». Я использую учетную запись «root» только для создания другой учетной записи с именем «ilya» и для настройки для учетной записи «ilya» прав (также я задам для учетной записи «ilya» пароль). После этого все остальные действия в установленной системе «Ubuntu» я буду производить только под этой новой учетной записью «ilya».

Насколько я понял, для учетной записи «root» пароль задавать не нужно.

Создание учетной записи «ilya»

Для создания учетной записи пользователя с именем «ilya» я применил команду adduser, задав ей в качестве аргумента имя нового пользователя:

root@IlyaComp:/mnt/c# adduser ilya
Adding user `ilya' ...
Adding new group `ilya' (1000) ...
Adding new user `ilya' (1000) with group `ilya (1000)' ...
Creating home directory `/home/ilya' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for ilya
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
Adding new user `ilya' to supplemental / extra groups `users' ...
Adding user `ilya' to group `users' ...

Обратите внимание, при вводе пароля и его повторном вводе вводимые символы не отображаются в окне консоли. Это сделано в целях обеспечения безопасности. Дополнительную информацию о пользователе я вводить не захотел и на запросы полного имени пользователя, номера комнаты, номеров телефонов и так далее просто нажимал клавишу «Enter» на клавиатуре (ввод пустой строки). Еще понадобилось ввести символ «Y» (да), чтобы подтвердить корректность введенной информации о пользователе.

Настройка прав нового пользователя «ilya», команда «sudo»

Насколько я понял, из соображений безопасности предполагается, что пользователь в операционной системе «Ubuntu» обычно работает под своей учетной записью (в моем случае - учетная запись «ilya») с ограниченными правами. Если пользователю требуется выполнить некую важную операцию, для выполнения которой требуются права администратора системы, он использует не учетную запись суперпользователя «root», а временно (на период выполнения соответствующей операции) повышает свои права до администраторских с помощью специальной команды «sudo» (при этом требуется ввод пароля пользователя).

Слово «sudo» является аббревиатурой и расшифровывается как «substitute user and do» или «superuser do» (имеется в виду, что с точки зрения системы обычный пользователь как бы временно «подменяется» суперпользователем).

Таким образом, для только что созданного пользователя «ilya» требуется настроить разрешение на пользование командой «sudo» (если мы хотим, чтобы пользователь «ilya» мог выполнять и администраторские задачи помимо обычных задач). Один из способов выполнить такую настройку - отредактировать файл /etc/sudoers (словом «sudoers» называют пользователей, которые обладают правом использовать команду «sudo»). Для этого я использовал команду visudo. Эта команда открывает файл /etc/sudoers с помощью текстового редактора «GNU nano» (один из популярных маленьких текстовых редакторов в мире «Linux», работающий в командной строке).

В файле /etc/sudoers я нашел строку

root ALL=(ALL:ALL) ALL

и добавил после нее строку

ilya ALL=(ALL:ALL) ALL

Сохранил изменения с помощью сочетания клавиш «Ctrl+S» и вышел из текстового редактора «GNU nano» с помощью сочетания клавиш «Ctrl+X».

Настройка пользователя по умолчанию

Сразу после установки дистрибутива «Ubuntu» для работы через подсистему WSL пользователь, как уже упоминалось выше, в дистрибутиве один - суперпользователь с именем «root», он же является пользователем по умолчанию. Для удобной работы с дистрибутивом «Ubuntu» имеет смысл сделать пользователем по умолчанию только что созданного второго пользователя - с именем «ilya». Эту настройку можно выполнить в файле /etc/wsl.conf (тут подробнее). Для этого опять откроем этот файл в текстовом редакторе «GNU nano», только команду теперь используем более понятную, чем в предыдущем случае:

nano /etc/wsl.conf

В моем случае файла /etc/wsl.conf еще не существовало, поэтому редактор «GNU nano» создал новый файл с таким именем (если бы этот файл существовал, то он был бы открыт для редактирования). В пустой файл я добавил следующее:

[user]
default=ilya

Сохранил изменения с помощью сочетания клавиш «Ctrl+S» и вышел из текстового редактора «GNU nano» с помощью сочетания клавиш «Ctrl+X».

Тестирование работы под учетной записью «ilya»

На этом первоначальную настройку дистрибутива «Ubuntu» я решил закончить. Перед тестированием только что созданной учетной записи следует выйти из сеанса работы с учетной записью суперпользователя (и больше никогда учетной записью суперпользователя не пользоваться... если только в самом крайнем случае). Для выхода из сеанса работы с дистрибутивом можно использовать команду exit.

Важно! Следует иметь в виду, что хотя после ввода команды exit вкладка дистрибутива «Linux» в программе-«эмуляторе терминала» может закрыться мгновенно, это не значит, что сеанс работы с дистрибутивом завершился точно с такой же быстротой. Обычно это занимает какое-то время, секунд пять-десять или даже больше (зависит от быстроты работы конкретного компьютера и других причин). Так что при перезапуске дистрибутива (выходе и новом запуске) имеет смысл подождать какое-то время после выхода, либо можно воспользоваться командой wsl --shutdown (осторожно! эта команда останавливает все запущенные дистрибутивы) или командой wsl --terminate <имя дистрибутива>.

Для проверки запущенных и пока не остановленных дистрибутивов можно использовать команду wsl --list --running или команду wsl --list --verbose. Если выйти из сеанса работы с дистрибутивом и тут же войти снова, без паузы, то можно попасть в тот же сеанс работы с дистрибутивом, при этом перезапуска не произойдет, новые настройки не вступят в силу.

При новом запуске (и при всех будущих запусках) дистрибутива «Ubuntu» версии 23.04 (Lunar Lobster) у меня теперь по умолчанию используется новый пользователь «ilya», которого я создал ранее:



Обратите внимание, что строка приглашения ко вводу команд теперь заканчивается символом доллара $. Это значит, что работа идет под учетной записью обычного пользователя, а не суперпользователя.

Инструмент, Образование, Программирование, Английский язык

Previous post Next post
Up