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. У реальній роботі ви будете часто використовувати їх для діагностики проблем, перевірки прав і налаштування користувачів.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ