Введение
Linux - это мультипользовательская операционная система, в которой несколько пользователей могут работать одновременно. Понимание того, как переключаться между различными пользовательскими аккаунтами, является фундаментальным навыком для системных администраторов и пользователей Linux. В этом практическом занятии (лабораторной работе) LabEx вы научитесь переключать пользователей в Linux с использованием команды su (substitute user - заменить пользователя).
В рамках этого практического занятия вы узнаете, как создать нового пользователя, переключаться между пользователями, выполнять операции от имени разных пользователей и вернуться в свой исходный пользовательский аккаунт. Эти навыки являются важными для выполнения задач по системному администрированию, обеспечения безопасности и понимания прав доступа пользователей в среде Linux.
Понимание пользователей Linux и создание нового пользователя
В Linux каждый пользователь имеет свою учетную запись с определенными правами доступа и домашней директорией. Прежде чем мы сможем переключаться между пользователями, нам нужно создать вторую учетную запись.
Создание нового пользователя
Создадим нового пользователя с именем apprentice с помощью команды adduser. Эта команда требует административных привилегий, поэтому мы используем sudo для выполнения команды с повышенными правами:
sudo adduser apprentice
При выполнении этой команды вас попросят установить пароль для нового пользователя и ввести дополнительную необязательную информацию. В рамках этого практического занятия установим пароль password123 и нажмем Enter, чтобы пропустить поля с необязательной информацией:
Adding user `apprentice' ...
Adding new group `apprentice' (1001) ...
Adding new user `apprentice' (1001) with group `apprentice' ...
Creating home directory `/home/apprentice' ...
Copying files from `/etc/skel' ...
New password: password123
Retype new password: password123
passwd: password updated successfully
Changing the user information for apprentice
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
Предоставление привилегий sudo
Теперь дадим пользователю apprentice привилегии sudo, чтобы он мог выполнять административные задачи:
sudo usermod -aG sudo apprentice
Эта команда добавляет пользователя apprentice в группу sudo. Если команда выполнится успешно, никакого вывода не будет.
Проверка существования пользователя
Чтобы убедиться, что новый пользователь был успешно создан, мы можем вывести содержимое директории /home:
ls -l /home
Вы должны увидеть директорию для пользователя apprentice:
total 8
drwxr-xr-x 5 apprentice apprentice 4096 Oct 15 12:34 apprentice
drwxr-xr-x 5 labex labex 4096 Oct 15 12:00 labex
Мы также можем проверить список пользователей в системе, просмотрев файл /etc/passwd:
grep apprentice /etc/passwd
В выводе должны отобразиться сведения о пользователе apprentice:
apprentice:x:1001:1001:,,,:/home/apprentice:/bin/bash
Переключение между пользователями с использованием команды su
Теперь, когда мы создали пользователя apprentice, давайте научимся переключаться на этого пользователя с помощью команды su.
Понимание команды su
Команда su (substitute user - заменить пользователя) позволяет переключаться на другую учетную запись во время сеанса входа в систему. Существует два распространенных способа использования команды su:
su username- Переключается на указанного пользователя, но сохраняет текущие переменные окружения.su - username- Переключается на указанного пользователя и загружает его окружение.
В общем, предпочтительнее использовать второй вариант с дефисом (-), так как он обеспечивает полное переключение окружения, и это ощущается как если бы вы действительно вошли в систему под этим пользователем.
Переключение на пользователя apprentice
Переключимся на пользователя apprentice с полным переключением окружения:
su - apprentice
Вам будет предложено ввести пароль пользователя apprentice. Введите пароль, который вы установили при создании пользователя (password123):
Password: password123
После успешной аутентификации приглашение командной строки изменится, чтобы показать, что вы теперь вошли в систему как пользователь apprentice. Приглашение может выглядеть примерно так:
apprentice@ubuntu:~$
Проверка переключения пользователя
Чтобы убедиться, что вы теперь работаете как пользователь apprentice, выполните команду whoami:
whoami
Вывод должен быть следующим:
apprentice
Вы также можете проверить текущую рабочую директорию с помощью команды pwd:
pwd
Вывод должен показать, что вы находитесь в домашней директории пользователя apprentice:
/home/apprentice
Создание файлов от имени пользователя apprentice
Теперь, когда мы вошли в систему как пользователь apprentice, давайте создадим несколько файлов, чтобы показать, что действия, выполняемые в этой сессии, выполняются с правами доступа пользователя apprentice.
Создание директории
Сначала создадим проектную директорию в домашней директории пользователя apprentice:
mkdir -p ~/project
Флаг -p гарантирует, что команда не вызовет ошибку, если директория уже существует. Если команда выполнится успешно, никакого вывода не будет.
Создание текстового файла
Теперь создадим текстовый файл в проектной директории:
echo "This is my first file as the apprentice user." > ~/project/apprentice-journal.txt
При выполнении этой команды никакого вывода не будет, но будет создан файл с указанным содержимым.
Просмотр содержимого файла
Проверим содержимое только что созданного файла:
cat ~/project/apprentice-journal.txt
Вывод должен быть следующим:
This is my first file as the apprentice user.
Проверка владельца файла
Мы также можем убедиться, что файл принадлежит пользователю apprentice:
ls -l ~/project/apprentice-journal.txt
Вывод должен выглядеть примерно так:
-rw-rw-r-- 1 apprentice apprentice 44 Oct 15 13:45 /home/apprentice/project/apprentice-journal.txt
Обратите внимание, что и пользователь, и группа-владелец файла установлены как apprentice, что подтверждает, что файл был создан с правами доступа пользователя apprentice.
Переключение обратно на исходного пользователя
После завершения задач от имени пользователя apprentice пришло время вернуться к своей исходной учетной записи. Это обычная практика, когда вам временно нужно выполнять действия от имени другого пользователя, а затем вернуться к своей основной учетной записи.
Выход из сеанса пользователя apprentice
Чтобы вернуться к своей исходной сессии пользователя, просто введите exit или нажмите Ctrl+D:
exit
Вы должны увидеть, как приглашение командной строки вернется к исходному, которое может выглядеть примерно так:
labex@ubuntu:~/project$
Проверка переключения пользователя
Чтобы убедиться, что вы успешно вернулись к своей исходной учетной записи, выполните команду whoami:
whoami
Вывод должен быть следующим:
labex
Доступ к файлам, созданным другими пользователями
Даже если вы вернулись к своему исходному пользователю, вы все еще можете получить доступ к файлам, созданным пользователем apprentice, если у вас есть соответствующие права доступа:
cat /home/apprentice/project/apprentice-journal.txt
Вывод должен показать содержимое файла:
This is my first file as the apprentice user.
Сравнение контекстов пользователей
Теперь, когда вы опробовали переключение между пользователями, давайте продемонстрируем разницу в контексте пользователя, проверив пути к домашним директориям:
echo "My home directory is: $HOME"
Вывод должен показать домашнюю директорию вашего исходного пользователя:
My home directory is: /home/labex
Если бы вы вернулись к пользователю apprentice и выполнили ту же команду, вывод был бы другим:
su - apprentice ## (Не выполняйте это сейчас, только для иллюстрации)
echo "My home directory is: $HOME" ## Показало бы: My home directory is: /home/apprentice
Это демонстрирует, как команда su с опцией - полностью переключает пользовательское окружение, включая переменные окружения, такие как $HOME.
Резюме
В этом практическом занятии вы изучили основные навыки управления пользователями в Linux:
- Создание новой учетной записи пользователя с помощью команды
adduser - Предоставление привилегий sudo пользователю с помощью команды
usermod - Переключение между пользователями с использованием команды
su - Создание файлов от имени другого пользователя
- Проверка контекста пользователя с помощью команд, таких как
whoami, и проверка переменных окружения - Возвращение к своему исходному пользователю с помощью команды
exit
Эти навыки являются фундаментальными для администрирования Linux-систем и повседневных операций в многопользовательских средах. Переключение между пользователями позволяет администраторам выполнять задачи с различными уровнями прав доступа и соблюдать правильные практики безопасности, избегая постоянного использования учетной записи root.
Понимание управления пользователями в Linux помогает вам:
- Поддерживать безопасность системы, используя соответствующие права доступа пользователей
- Диагностировать и решать проблемы, связанные с правами доступа
- Тестировать приложения и конфигурации с разных пользовательских точек зрения
- Эффективно управлять многопользовательскими системами
По мере продвижения в изучении Linux эти навыки станут основой для более сложных задач по администрированию системы.



