Запуск програм від імені 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” (адміністратор), а решта належать до системних сервісів. Залежно від встановлених вами сервісів цей список може бути більшим або меншим.
Кожен рядок — це окремий користувач, а поля розділені двокрапкою. Поля мають таке значення:
Щоб додати користувача вручну, відкрийте файл `/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
Щоб видалити користувача:
# rm -r /home/testuser