Переключение пользователей в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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:

  1. su username - Переключается на указанного пользователя, но сохраняет текущие переменные окружения.
  2. 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:

  1. Создание новой учетной записи пользователя с помощью команды adduser
  2. Предоставление привилегий sudo пользователю с помощью команды usermod
  3. Переключение между пользователями с использованием команды su
  4. Создание файлов от имени другого пользователя
  5. Проверка контекста пользователя с помощью команд, таких как whoami, и проверка переменных окружения
  6. Возвращение к своему исходному пользователю с помощью команды exit

Эти навыки являются фундаментальными для администрирования Linux-систем и повседневных операций в многопользовательских средах. Переключение между пользователями позволяет администраторам выполнять задачи с различными уровнями прав доступа и соблюдать правильные практики безопасности, избегая постоянного использования учетной записи root.

Понимание управления пользователями в Linux помогает вам:

  • Поддерживать безопасность системы, используя соответствующие права доступа пользователей
  • Диагностировать и решать проблемы, связанные с правами доступа
  • Тестировать приложения и конфигурации с разных пользовательских точек зрения
  • Эффективно управлять многопользовательскими системами

По мере продвижения в изучении Linux эти навыки станут основой для более сложных задач по администрированию системы.