Linux, хто входить до групи. Групи користувачів Linux

UNIX-подібні операційні системи є розрахованими на багато користувачів. Користувачі та групи в яких вони складаються використовуються для керування доступом до системним файлам, каталогів та периферії. За умовчанням, linux пропонує відносно прості механізми контролю доступу. Розширити їх можна за допомогою LDAP та ACL, але в цій темі ми розглянемо стандартні засобиконтролю допуску.

Користувачі та Групи в Linux

Користувачі:

Business - Internet Access #1.

Користувач– це будь-хто, хто користується комп'ютером. Користувачу призначається ім'я, ім'я має бути унікальним у системі (linux є зарезервовані імена, такі як "root", "hal", і "adm"). Ім'я може складатися з букв англійського алфавіту, арабських чисел та символів «_» (нижня прогалина) «.» (крапка).

Root(від англ root- Корінь; читається «рут»), суперкористувач - це обліковий запис в UNIX-подібних операційних системах з ідентифікатором (UID) 0, власник цього облікового запису має право на виконання будь-якої операції. З метою безпеки працювати під суперкористувачем rootне рекомендується.

Крім системного імені, в систему може занестись і зберігається повне ім'я(наприклад П.І.Б.)(full name) реального користувача. Наприклад, користувачу newuser в реального життяможе відповідати людина на ім'я John Smith. Ця інформація дозволить краще контролювати та ідентифікувати користувачів системному адміністратору, тим більше якщо користувачів у системі сотні або навіть тисячі.

Під кожного користувача створюється свій каталог (home directory). У цей каталог потрапляє користувач після того, як він авторизувався і зберігається в ньому. особисті файлита папки користувача. Всі каталоги користувачів зібрані в одному місці, як правило, це /home.

Також, користувачеві призначається командна оболонка ( командний інтерпретатор, що використовується в операційних системах сімейства UNIX). Наприклад: /bin/bash, /bin/zsh, /bin/sh і т.д. У багатьох дистрибутивів linux, для користувачів за замовчуванням призначається командна оболонка bash.

Кожному користувачеві призначається ідентифікаційний номер(User ID). Скорочено номер позначається як UID, що є унікальним ідентифікатором користувача. Операційна система відстежує користувача саме за UID, а не за їхнім ім'ям.

Також кожному користувачеві призначається пароль для входу в систему. Пароль зберігатиметься у зашифрованому вигляді (encripted). Для створення та зміни пароля використовується команда passwd. Системний адміністраторможе сам призначити пароль або дати можливість користувачеві ввести пароль при першій авторизації.

Кожен користувач належить мінімум до однієї чи кількох груп. (користувачі та групи в linux)

Групи:

Для розмежування прав у linux, окрім користувачів, існують групи. Так само як і користувач, група має права доступу до тих чи інших каталогів, файлів, периферії (в системі є групи, що зарезервовані). Для кожного файлу визначено не лише користувач, а й групу. Групи групують користувачів надання однакових повноважень на будь-які дії.

Кожній групі призначається ідентифікаційний номер ( group ID). Скорочено GID, є унікальним ідентифікатором групи. Приналежність користувача до групи встановлюється адміністратором.

Перегляд користувачів

(Користувачі та групи в linux) Вся вищевикладена інформація зберігається у файлі /etc/passwd. Щоб переглянути список користувачів, потрібно ввести команду:

# cat /etc/passwd

Кожен обліковий запис займає один рядок. Висновок може бути наступним:

Root:xD928Jhs7sH32:0:0:root:/root:/bin/bash newuser:Xv8Q981g71oKK:1000:100:John Smith:/home/newuser:/bin/bash

Цей рядок має наступний формат:

Account:password:UID:GID:GECOS:directory:shell

Account - Ім'я користувача password - зашифрований пароль користувача UID - ідентифікаційний номер користувача GID - ідентифікаційний номер основної групи користувача GECOS - необов'язкове поле, яке використовується для вказівки додаткової інформаціїпро користувача (наприклад, повне ім'я користувача) directory - домашній каталог ($HOME) користувача shell - командний інтерпретатор користувача (зазвичай /bin/sh)

Для перегляду списку користувачів, які знаходяться в Наразічасу в системі є команда, яка.

Висновок може бути наступним:

Newuser pts/0 2013-11-13 14:19 (:0)

Створення, керування та видалення користувачів

(користувачі та групи в linux) При створенні нових користувачів відбувається послідовність певних дій. Спочатку заводиться запис у файлі / etc / passwd, де користувачу призначається унікальне ім'я, UID, GID та інша інформація. UID має бути більше 1000, а GID більше 100, це пов'язано з тим, що система резервує малі значення під свої потреби. Також створюється каталог, встановлюються права, поміщаються файли ініціалізації командної оболонки і модифікуються конфігураційні файли.

Щоб не вводити цю інформацію вручну, існує програма useradd(або adduser). Установки програми зберігаються у файлі /etc/default/useradd.

# cat /etc/default/useradd

Висновок наступний:

GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=no

Можна змінити параметри за замовчуванням. Наприклад, директорію для користувачів з /home /home/user або інтерпретатор з /bin/bash на /bin/sh.

Для створення нового користувача скористаємося командою useradd:

# useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash newuser

Розшифровка:

# useradd -m -g [основна група] -G [список додаткових груп] -s [командний інтерпретатор] [ім'я користувача]

  • -m- Створює домашній каталог, виду /home/[ім'я користувача].
  • -g- Ім'я або номер основної групи користувача.
  • -G- Список додаткових груп, до яких входить користувач.
  • -s- Визначає командну оболонкукористувача.

Для більш детальної інформаціїскористайтесь мануалом:

# man useradd

Командою chfn можна внести або змінити інформацію облікового запису користувача (ПІБ, робочий телефон, робочі координати тощо) (username - ім'я користувача).

# chfn [-f повне-ім'я][-о office][-p робітник-телефон][-h домашній-телефон][-u][-v]

Для завдання пароля використовується команда passwd:

Якщо ми хочемо змусити користувача змінити пароль на свій при першому вході в систему, потрібно застосувати команду:

# chage -d 0

# man chage

Для того, щоб видалити користувача, існує команда userdel

# userdel -r

Параметр -r вказує на те, що слід разом з користувачем видалити домашню директоріюта поштову скриньку.

Управління групами

Для перегляду всіх групсистеми та яким користувачемвони належать потрібно ввести таке:

# cat /etc/group

Файл /etc/group визначатиме групи в системі. Щоб подивитися, в яких групах складається користувач, потрібно набрати:

# groups

Команда id показує докладнішу інформацію.

#id

Для створення нової групи:

# groupadd

Щоб занести користувача до групи:

# gpasswd -a

Висновок користувача з групи:

# gpasswd -d

І для того щоб видалити групу, введемо такі:

# groupdel

(Користувачі та групи в linux) На цьому в принципі все, найголовніше викладено.

Основа розподілу прав доступу до операційної системі Linuxлежить на понятті користувач. Користувачеві-власнику файлу видаються певні повноваження для роботи з ним, а саме на читання, запис та виконання. Також окремо встановлюються повноваження на читання, запис та виконання для решти користувачів. Оскільки в Linux є файлом, то така система дозволяє регулювати доступ до будь-якої дії в цій операційній системі за допомогою встановлення прав доступу на файли. Але ще при створення Linux, Розробники зрозуміли, що цього явно недостатньо.

Тому і були вигадані групи користувачів. Користувачі можуть об'єднуватися в групи, щоб групам вже видавати потрібні повноваження на доступ до тих чи інших файлів, а відповідно і дій. У цій статті ми розглянемо групи користувачів у Linux, розглянемо навіщо вони потрібні, як додати користувача до групи та керувати групами.

Як я вже сказав групи в Linux з'явилися ще на самому початку розробки цієї операційної системи. Вони були розроблені для того, щоб розширити можливості керування правами. Розберемо невеликий приклад, візьмемо організацію у якій є лише один комп'ютер, у нас є адміністратори та користувачі. Кожна людина має свій акаунт на нашому комп'ютері. Адміністратори можуть налаштовувати систему, користувачам краще не давати волі, щоб щось не зламали. Тому адміністратори об'єднуються в групу admin, і їй дається доступ до всього обладнання, реально до всіх файлів в каталозі dev, а користувачі, об'єднані в групу users, і цій групі дається можливість читати і записувати файли в загальний каталог, з допомогою якого можуть обмінюватися результатами своєї роботи. Ми могли б призначати права для кожного користувача окремо, дозволяючи йому доступ до того чи іншого файлу, але це занадто незручно. Тому й були вигадані групи. Кажете, та нічого, можна призначити? Ну а тепер уявіть, що наші користувачі - це процеси. Ось тут вся краса груп виходить на передній план, групи використовуються не так для забезпечення доступу для користувачів, як для управління правами програм, особливо їх доступом до обладнання. Для сервісів створюються окремі групиі користувач, від імені якого він запущений, сервіс може перебувати в кількох групах, що забезпечує йому доступ до певних ресурсів.

А тепер давайте розглянемо як подивитись групи linux.

Групи в Linux

Усі групи, створені у системі, перебувають у файлі /etc/group. Переглянувши вміст цього файлу, ви можете дізнатися про список груп linux, які вже є у вашій системі. І ви будете здивовані.

Окрім стандартних root та users, тут є ще кілька десятків груп. Це групи, створені програмами, для управління доступом цих програм до загальним ресурсам. Кожна група дозволяє читати або записувати певного файлучи каталогу системи, цим регулюючи повноваження користувача, отже, і процесу, запущеного від цього пользователя. Тут можна вважати, що користувач - це те саме, що процес, тому що у процесу всі повноваження користувача, від якого він запущений.

Давайте докладніше розглянемо кожну групу, щоб краще розуміти навіщо вони потрібні:

  • daemon- від імені цієї групи і користувача daemon запускаються сервіси, яким необхідна можливість запису файлів на диск.
  • sys- група відкриває доступ до вихідників ядра та файлів includeзбереженим у системі
  • sync- дозволяє виконувати команду /bin/sync
  • games- дозволяє іграм записувати свої файли налаштувань та історію у певну папку
  • man- дозволяє додавати сторінки до директорії /var/cache/man
  • lp- дозволяє використовувати пристрої паралельних портів
  • mail- дозволяє записувати дані в поштові ящики/var/mail/
  • proxy- використовується проксі-серверами, немає доступу запису файлів на диск
  • www-data- З цією групою запускається веб-сервер, вона дає доступ на запис /var/www, де знаходяться файли веб-документів
  • list- дозволяє переглядати повідомлення у /var/mail
  • nogroup- використовується для процесів, які не можуть створювати файли на жорсткому диску, а тільки читати, зазвичай застосовується разом з користувачем nobody.
  • adm- дозволяє читати логи з директорії /var/log
  • tty- всі пристрої /dev/vca дозволяють доступ на читання та запис користувачам із цієї групи
  • disk- відкриває доступ до жорстким дискам/dev/sd* /dev/hd*, можна сказати, що це аналог рут доступу.
  • dialout - повний доступдо серійного порту
  • cdrom- Доступ до CD-ROM
  • wheel- дозволяє запускати утиліту sudo для підвищення привілеїв
  • audio- керування аудіодрайвером
  • src- повний доступ до вихідних джерел у каталозі /usr/src/
  • shadow- дозволяє читання файлу /etc/shadow
  • utmp- дозволяє запис у файли /var/log/utmp/var/log/wtmp
  • video- дозволяє працювати з відеодрайвером
  • plugdev- дозволяє монтувати зовнішні пристрої USB, CD і т д
  • staff- дозволяє запис до папки /usr/local

Тепер, коли ви знаєте, навіщо використовувати групи в linux і які вони є за замовчуванням, розглянемо управління групами LInux.

Керування групами Linux

Керувати групами можна за допомогою графічного інтерфейсу. У KDE є програма Kuser спеціально призначена для цього, Gnome це виконується за допомогою налаштувань системи. Крім того, у популярних дистрибутивах є окремі інструменти, такі як YaST в OpenSUSE або Установки Ubuntu. Але з графічним інтерфейсомя думаю ви розберетеся. А ми розглянемо керування групами linux через термінал. Спочатку розберемося із файлами, а вже потім із користувачами.

При створенні файлу йому призначається основна група користувача, який його створив. Це просто наприклад:

Тут ви можете бачити, що власник всіх папок sergiy та група теж sergiy. Правильно, оскільки ці користувачі створили мною. Але давайте підемо далі:

Тут ми бачимо що дисковим пристроям sd* призначена група disk, а це все означає, що користувач, який перебуває в цій групі, може отримати доступ до них. Або ще приклад:

Усі як ми розглядали у попередньому пункті. Але ці групи можуть бути не тільки встановлені системою, але й самі вручну можете міняти групи файлів для цього є команда chgrp:

chgrp ім'я_групи ім'я_файлу

Наприклад створимо файл test:

І змінимо для нього групу:

Якщо ви бажаєте створити групу linux, це можна зробити командою newgrp:

sudo groupadd test

З користувачами ситуація трохи складніша. Користувач має основну групу, вона вказується під час створення, і навіть кілька додаткових. Основна група відрізняється від звичайних тим, що всі файли в домашньому каталозікористувача мають цю групу, і за її зміні, група цих каталогів теж зміниться. Також саме цю групу отримують усі файли, створені користувачем. Додаткові групи потрібні, щоб ми могли дозволити користувачам доступ до різних ресурсів, додавши їх у ці групи в linux.

Керування групами Linux для користувача виконується за допомогою команди usermod. Розглянемо її синтаксис та опції:

$usermod опції Ім'я користувача

  • -G- додаткові групи, до яких потрібно додати користувача
  • -gзмінити основну групу для користувача
  • -Rвидалити користувача з групи.

Додати користувача до групи можна командою usermod:

sudo usermod -G -a ім'я_групи ім'я_користувача

Можна додати користувача до групи linux тимчасово, командою newgrp. Відкриється нова оболонка, і в ній користувач матиме потрібні повноваження, але після закриття все повернеться як було:

sudo newgrp ім'я_групи

Для прикладу давайте додамо нашого користувача до групи disk, щоб мати прямий доступ до жорстких дисків без команди sudo:

sudo usermod -G -a disk sergiy

Тепер ви можете монтувати диски без команди sudo:

mount /dev/sda1 /mnt

Подивитися групи linux, в яких складається користувач, можна командою:

Можна також використовувати команду id. У першому випадку ми просто бачимо список груп linux, у другому додатково вказані id групи та користувача. Щоб увімкнути користувача до групи Linux, для основної групи використовується опція -g.