Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять стандартную оболочку (shell) для определенного пользователя в Linux. Оболочка (shell) представляет собой интерпретатор командной строки, который обрабатывает ваши команды, и разные пользователи могут иметь разные стандартные оболочки.
Вы изучите файл /etc/passwd, чтобы определить стандартную оболочку пользователя, узнаете, как перечислить доступные оболочки в системе с помощью команды chsh -l, и проверите информацию о оболочке пользователя с помощью команды getent passwd. Эта лабораторная работа предоставляет фундаментальные знания для понимания конфигураций пользователей в Linux.
Проверка оболочки пользователя с помощью команды cat /etc/passwd
На этом этапе вы научитесь проверять стандартную оболочку (shell) для пользователя в Linux. Оболочка (shell) представляет собой интерпретатор командной строки, который обрабатывает ваши команды. Разные пользователи могут иметь разные стандартные оболочки.
Файл /etc/passwd содержит информацию о всех пользователях в системе. Каждая строка в этом файле представляет пользователя и имеет структуру, в которой поля разделены двоеточиями (:). Последнее поле в каждой строке указывает стандартную оболочку пользователя.
Мы можем использовать команду cat для отображения содержимого файла /etc/passwd.
Если терминал еще не открыт, откройте его. Помните, что вы можете найти значок Xfce Terminal слева на рабочем столе.
Теперь введите следующую команду и нажмите Enter:
cat /etc/passwd
Эта команда выведет весь контент файла /etc/passwd в ваш терминал. Вы увидите много строк, каждая из которых соответствует учетной записи пользователя в системе.
Найдите строку, которая начинается с labex:. Это запись для текущего пользователя. Строка будет выглядеть приблизительно так (некоторые части могут отличаться):
labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh
Поля имеют следующие значения:
- Имя пользователя (Username):
labex - Заполнитель пароля (Password placeholder):
x(фактический хэш пароля хранится в другом месте для обеспечения безопасности) - Идентификатор пользователя (User ID - UID):
5000 - Идентификатор группы (Group ID - GID):
5000 - Информация о пользователе (GECOS):
LabEx user,,, - Домашний каталог (Home Directory):
/home/labex - Стандартная оболочка (Default Shell):
/usr/bin/zsh
В данном случае стандартной оболочкой для пользователя labex является /usr/bin/zsh. Это подтверждает, что текущий терминал, который вы используете, действительно zsh.
Понимание файла /etc/passwd является фундаментальным для администрирования системы Linux. Он предоставляет быстрый способ получения базовой информации о пользователях, включая их стандартную оболочку и домашний каталог.
Нажмите Продолжить (Continue), чтобы перейти к следующему шагу.
Перечисление доступных оболочек (shell) с помощью команды chsh -l
На предыдущем этапе вы увидели, что вашей стандартной оболочкой (shell) является /usr/bin/zsh. Но какие еще оболочки доступны в этой системе?
В системах Linux часто устанавливается несколько оболочек. Вы можете перечислить доступные оболочки, используя команду chsh с опцией -l.
Команда chsh обычно используется для изменения оболочки входа (login shell) пользователя, но опция -l позволяет перечислить оболочки, перечисленные в файле /etc/shells. Этот файл содержит список допустимых оболочек входа в системе.
В терминале введите следующую команду и нажмите Enter:
chsh -l
Эта команда выведет список путей, каждый из которых представляет доступную оболочку в системе. Вывод будет похож на следующий:
/bin/sh
/bin/bash
/usr/bin/rc
/usr/bin/rbash
/usr/bin/nologin
/bin/false
/usr/bin/zsh
/usr/bin/ksh
/usr/bin/dash
Вы можете увидеть /usr/bin/zsh в этом списке, что подтверждает, что это допустимая оболочка в этой системе. Также вы можете увидеть другие распространенные оболочки, такие как /bin/bash (Bourne Again SHell) и /bin/sh (Bourne SHell).
Понимание, какие оболочки доступны, полезно, если вам когда-либо нужно будет изменить стандартную оболочку или если вы столкнетесь со скриптами, написанными для определенной оболочки.
Нажмите Продолжить (Continue), чтобы перейти к следующему шагу.
Проверка оболочки (shell) с помощью команды getent passwd
На предыдущих этапах вы узнали, как напрямую просматривать файл /etc/passwd и перечислять доступные оболочки. Теперь давайте используем другую команду, getent, чтобы получить информацию о пользователе, включая его оболочку.
Команда getent представляет собой утилиту, которая получает записи из баз данных Name Service Switch (NSS), которые могут включать /etc/passwd, /etc/group и другие. Это более стандартизованный способ получения информации о пользователях по сравнению с прямым чтением файла /etc/passwd, так как он также может запрашивать сетевые базы данных пользователей.
Чтобы получить запись для пользователя labex из базы данных passwd, введите следующую команду в терминале и нажмите Enter:
getent passwd labex
Эта команда специально запрашивает запись для пользователя labex из базы данных passwd. Вывод будет похож на строку, которую вы видели при использовании команды cat /etc/passwd:
labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh
Снова последнее поле /usr/bin/zsh подтверждает, что стандартной оболочкой для пользователя labex является /usr/bin/zsh.
Использование команды getent часто предпочтительнее в скриптах или при запросах к системам, которые могут использовать централизованные системы аутентификации (например, LDAP), а не только локальные файлы. Для простых проверок на локальной системе работают как команда cat /etc/passwd, так и команда getent passwd <username>.
Теперь вы успешно использовали три разных метода для изучения оболочек пользователей в Linux: прямое просмотр файла /etc/passwd, перечисление доступных оболочек с помощью команды chsh -l и запрос информации о пользователе с помощью команды getent.
Нажмите Продолжить (Continue), чтобы завершить этот практический урок.
Резюме
В этом практическом уроке вы узнали, как проверить стандартную оболочку (shell) пользователя в Linux. Вы использовали команду cat /etc/passwd для отображения информации о пользователях, с особым вниманием к последнему полю каждой строки, которое указывает на стандартную оболочку. Этот метод представляет собой прямой способ определения оболочки, настроенной для любого пользователя в системе, путем изучения структуры файла /etc/passwd.



