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

Запуск програм від імені root — погана практика безпеки, оскільки будь-яка вразливість у програмі надає доступ до root-привілеїв у системі OpenWrt.

З цієї причини багато застосунків налаштовано так, щоб запускатися від імені окремого користувача без root-доступу, без доступу до shell (командного рядка) і з обмеженим доступом лише до окремих каталогів (зазвичай лише конфігурацій і даних сервісу).

# opkg update
# opkg install shadow-useradd
# useradd -r -s /bin/false service-name

Файл, де зберігаються всі користувачі, — це `/etc/passwd`. Ви можете переглянути UID та GID нового користувача (і змінити їх за потреби). Приклад:

# cat /etc/passwd
root:x:0:0:root:/root:/bin/ash
daemon:*:1:1:daemon:/var:/bin/false
ftp:*:55:55:ftp:/home/ftp:/bin/false
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
dnsmasq:x:453:453:dnsmasq:/var/run/dnsmasq:/bin/false
docker:x:65536:65536:docker:/var/run/docker:/bin/false
ubus:x:81:81:ubus:/var/run/ubus:/bin/false

Ми бачимо кількох користувачів, серед яких перший — “root” (адміністратор), а решта належать до системних сервісів. Залежно від встановлених вами сервісів цей список може бути більшим або меншим.

Кожен рядок — це окремий користувач, а поля розділені двокрапкою. Поля мають таке значення:

  1. Ім’я користувача
  2. Зашифрований пароль
  3. UID — числовий ідентифікатор користувача
  4. GID — числовий ідентифікатор групи
  5. Повне ім’я користувача (GECOS)
  6. Домашній каталог користувача
  7. Shell ( /bin/ash — це дійсний shell в OpenWrt; /bin/false — щоб заборонити доступ до shell)

Щоб додати користувача вручну, відкрийте файл `/etc/passwd` і додайте новий рядок у відповідному форматі. Ім’я користувача та UID мають бути унікальними. Призначте групу (наприклад, 100 — група “users” в OpenWrt) і shell (/bin/false — щоб заборонити логін).

# vi /etc/passwd

Приклад нового рядка:

testuser:x:501:501:testuser:/home/user:/bin/ash

Призначте пароль новому користувачу:

# passwd testuser

Після чого буде виведено:

Changing password for user testuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

У типовій Linux-системі всі звичайні користувачі належать до групи “users”. Якщо потрібно створити нову групу або додати користувача до інших груп, змініть файл `/etc/group`.

Приклад рядка:

cvs::102:chris,logan,david,root

Поля: назва групи, пароль групи, GID, учасники (через кому). Щоб створити нову групу, додайте новий рядок із унікальним GID і списком учасників. Користувачам потрібно перелогінитися, щоб зміни вступили в дію.

Створіть домашній каталог користувача (відповідно до `/etc/passwd`) і призначте йому власника:

# mkdir /home/testuser
# chown testuser /home/testuser

Щоб видалити користувача:

  1. Видаліть рядок користувача з `/etc/passwd`
  2. Видаліть ім’я користувача з груп у файлі `/etc/group`
  3. За бажанням — видаліть домашній каталог користувача:
# rm -r /home/testuser
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/27 06:59
  • by vazaz