Створення користувача, який не може отримати інтерактивну оболонку


17

Що таке інтерактивна та неінтерактивна оболонка?

Запитання: Створіть користувача John, який не повинен отримувати інтерактивну оболонку.

Як ми можемо це зробити?

Відповіді:


9

У цьому /etc/passwdфайлі є останнім елементом у рядку користувача програма, яку потрібно запустити при вході в систему. Для звичайних користувачів це, як правило, встановлено в /bin/shіншу оболонку (наприклад, bash, zsh).

Традиційно ідентичності, які використовуються для власних процесів або файлів або інших ресурсів, мають свою "оболонку", встановлену /bin/falseяк в

syslog:x:101:102::/home/syslog:/bin/false

Псевдокористувальний syslog володіє /var/log/syslogі є єдиним UID, який має дозвіл на запис для цього файлу, але він не може увійти як syslog користувача, оскільки немає інтерпретатора команд, який не запускається.


9

Щодо питання, на яке ви намагаєтесь відповісти:

Створіть користувача John, який не повинен отримати інтерактивну оболонку.

Питання означає "Створіть користувача на ім'я, johnякий не зможе увійти та запустити команди з оболонки". Інтерактивне описує спосіб роботи оболонки: користувач щось вводить, а оболонка щось робить відповідно (існує певний зв’язок між користувачем і оболонкою). Слово "інтерактивний" насправді не додає жодної інформації до питання, оскільки, поки користувач вводить команди, сеанс оболонки є інтерактивним.

Існує також неінтерактивний режим, коли користувач зберігає низку команд, які хоче виконати у файлі (називається скриптом оболонки), а потім виконує файл. Деякі команди поводяться по-різному залежно від того, чи оболонка виконується інтерактивно чи неінтерактивно. Ви можете прочитати більше тут (цей документ призначений для bash, але те саме стосується інших оболонок).

Про те, як створити такого користувача, якщо ви проглядаєте man useradd, є можливість встановити оболонку входу, -sабо --shell. Ви також можете створити користувача нормально, у будь-якому випадку, який ви хочете (який, я вважаю, ви вже знаєте?), А потім редагувати, /etc/passwdяк у відповіді MSW .


3

Так, змініть оболонку у файлі пароля (/ etc / passwd) на якусь програму, яка не дозволить оболонці вийти.

якщо ти хочеш бути bofh / bin / false, зробиш саме те, що ти хочеш.


-1
adduser username -s /sbin/nologin

2
Зверніть увагу, що ім'я користувача вказано у питанні як "john". Не завадить використовувати маленьку прозу, щоб пояснити, що робить ваша команда і чому вона відповідає вимогам.
Джефф Шаллер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.