JavaRush /Курсы /Docker SELF /Проверка текущих прав доступа: команды `whoami`, `id`

Проверка текущих прав доступа: команды `whoami`, `id`

Docker SELF
2 уровень , 3 лекция
Открыта

1. Кто я в системе? Команда whoami

Каждый пользователь Linux оперирует под конкретной учетной записью, которая имеет свои права, ограничения и принадлежность к группам. В этой лекции вы научитесь проверять, с какой учетной записи вы работаете, какие у вас права, и к каким группам вы принадлежите. Знание текущих параметров пользователя важно как в повседневной работе, так и при решении вопросов безопасности, администрирования и отладки.

Когда вы работаете в системе Linux, полезно знать, под какой учетной записью вы действуете в данный момент. Например, если вы случайно оказались в системе под привилегированным (root) пользователем, вы можете внести непоправимые изменения в системные файлы. Чтобы избежать таких ситуаций, существует команда whoami.

Синтаксис

whoami

Что делает команда?

Команда whoami выводит имя текущего пользователя, под которым осуществляется работа в системе. Она отвечает на важнейший вопрос: "Кто я?"

Пример

$ whoami
student

В данном случае вывод student означает, что вы вошли в систему под пользователем с именем student. Если бы вы работали от имени пользователя с повышенными правами (например, root), вывод был бы следующим:

$ whoami
root

Почему это важно?

Представьте, что вы используете команду для удаления всех файлов из директории (например, rm -rf /important_directory). Под обычным пользователем система может вас ограничить, если у вас нет соответствующих прав. А вот под пользователем root она выполнит вашу команду без колебаний. Команда whoami помогает не оказаться в таких неприятных ситуациях.


2. Детальное изучение информации о пользователе: команда id

Знать своё имя пользователя — это хорошо, но этого недостаточно для глубокого понимания ваших прав и привилегий в системе. Для более детальной информации существует команда id.

Синтаксис

id [пользователь]

Если имя пользователя не указано, команда id покажет информацию о текущем пользователе. Если вы укажете имя другого пользователя, то сможете проверить детали его учетной записи.

Что выводит команда id?

  1. UID (User ID) — уникальный идентификатор пользователя.
  2. GID (Group ID) — уникальный идентификатор основной группы пользователя.
  3. Список групп — все группы, к которым принадлежит пользователь (включая основную).

Пример

$ id
uid=1001(student) gid=1001(student) группы=1001(student),27(sudo),1002(developers)
  • UID=1001: Это уникальный идентификатор текущего пользователя (student). В системах Linux UID пользователя root всегда равен 0.
  • GID=1001: Это идентификатор основной группы пользователя (student).
  • Группы=1001(student), 27(sudo), 1002(developers): Здесь перечислены дополнительные группы, к которым принадлежит пользователь. Например, группа sudo позволяет студенту выполнять команды от имени привилегированного пользователя.

Если мы запустим команду для другого пользователя:

$ id user2
uid=1002(user2) gid=1002(user2) группы=1002(user2),1001(developers)

Видно, что пользователь user2 принадлежит к группе developers.


3. Использование UID и GID в реальной работе

Каждому пользователю и группе назначаются свои числовые идентификаторы (UID и GID соответственно). Они играют важнейшую роль внутри системы, зачастую заменяя текстовые имена пользователей и групп. Для чего это нужно?

  • Некоторые системные процессы работают напрямую с числовыми идентификаторами для эффективности.
  • Права доступа к файлам и папкам определяются не именами пользователей или групп, а их UID и GID.
  • В конфигурационных файлах и журналах логов (например, /etc/passwd) вы можете встретить не имена пользователей, а их UID.

4. Исследуем группы с groups

Дополнительно вы можете использовать команду groups, чтобы узнать, к каким группам принадлежит текущий пользователь.

Синтаксис

groups [пользователь]

Опустив имя пользователя, вы получите список групп для текущей учетной записи. Указав имя пользователя, узнаете группы для заданного пользователя.

Пример:


$ groups
student developers sudo

$ groups user2
user2 developers

5. Работа с командами

А теперь немного практики, чтобы закрепить полученные знания.

Проверка текущей учётной записи

  1. Откройте терминал.
  2. Выполните команду:

    whoami
    

    Проверьте своё имя пользователя.

  3. Запустите команду sudo su (вас попросят ввести пароль), а потом снова выполните whoami, чтобы увидеть, под кем вы работаете.

Изучение информации о пользователе

  1. Выполните команду:

    id
    
    Просмотрите, какой у вашего пользователя UID, GID и к каким группам он принадлежит.
  2. Создайте нового пользователя (если у вас есть доступ к команде sudo):

    sudo adduser testuser
    

    Потом выполните:

    id testuser
    

Анализ принадлежности групп

  1. Выполните:

    groups
    

    Обратите внимание, к каким группам принадлежит ваш пользователь.

  2. Добавьте текущего пользователя в новую группу:

    sudo groupadd testgroup
    sudo usermod -aG testgroup $(whoami)
    

    Проверьте результат:

    groups
    

6. Типичные ошибки и каверзные моменты

  1. Многие новички путают whoami и id. Помните: whoami показывает только имя текущего пользователя, а id даёт более детальную информацию о правах и группах.

  2. Если у вас нет привилегий администратора (доступа к sudo), у вас может не быть возможности добавлять пользователей в группы или изменять их параметры. В таких случаях вам стоит обратиться к админу системы.

  3. Команда id с указанием несуществующего пользователя выдаст ошибку:

    $ id nonexistinguser
    id: ‘nonexistinguser’: no such user
    

Теперь вы знаете, как проверить, какой пользователь в данный момент активен, с какими правами и доступами он работает. Команды whoami и id кажутся простыми, но они играют ключевую роль в понимании системы пользователей и прав доступа в Linux. В реальной работе вы будете часто использовать их для диагностики проблем, проверки прав и настройки пользователей.

1
Задача
Docker SELF, 2 уровень, 3 лекция
Недоступна
Определение текущего пользователя
Определение текущего пользователя
1
Задача
Docker SELF, 2 уровень, 3 лекция
Недоступна
Проверка идентификаторов пользователя
Проверка идентификаторов пользователя
1
Задача
Docker SELF, 2 уровень, 3 лекция
Недоступна
Проверка информации о пользователе и группах
Проверка информации о пользователе и группах
1
Задача
Docker SELF, 2 уровень, 3 лекция
Недоступна
Добавление в группу и проверка прав доступа
Добавление в группу и проверка прав доступа
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ilya Klimchev Уровень 1
27 августа 2025
До сих пор не понимаю логику составителей лекций и задач. Здесь тему на 3 строчки размазали на целую лекцию. А где-то темы на отдельный курс умудрились упаковать в одну лекцию🤦‍♂️
Slevin Уровень 9
23 сентября 2025
Это логика ИИ которые захватят мир и лишат нас нашей работы, поскольку очевидно что они справляются лучше с любыми заданиями, например такими как "написание лекций" 🤣
Валерий Уровень 24
12 июня 2025
"id | grep testgroup" аналогично "groups | grep testgroup"?
Slevin Уровень 9
23 сентября 2025
Ну технически и тут и там вы будете искать строки содержащие слово "testgroup". Получите вы, правда, совершенно разные строки...