Создание пользователя, который не может получить интерактивную оболочку

17

Что такое интерактивная и неинтерактивная оболочка?

Вопросы: создайте пользователя john, который не должен получать интерактивную оболочку.

Как мы можем это сделать?

user2914
источник

Ответы:

9

/etc/passwdФайл имеет как последний элемент в строке пользователя программа для запуска при входе в систему . Для обычных пользователей это обычно устанавливается в /bin/shдругую оболочку (например, bash, zsh).

Традиционно, идентичность, которые используются для собственных процессов или файлов и других ресурсов есть их «оболочка» сет , /bin/falseкак и в

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

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

MSW
источник
9

По поводу вопроса, на который вы пытаетесь ответить:

Создайте пользователя john, который не должен получать интерактивную оболочку.

Вопрос означает «Создать пользователя с именем, johnкоторый не сможет войти в систему и запускать команды из оболочки». Интерактивно опишите, как работает оболочка: пользователь что-то вводит, а оболочка делает что-то соответственно (между пользователем и оболочкой существует своего рода связь). Слово «интерактивный» на самом деле не добавляет никакой информации к вопросу, потому что, пока есть пользовательские команды, сеанс оболочки является интерактивным.

Существует также неинтерактивный режим, в котором пользователь сохраняет серию команд, которые он хочет запустить в файле (называемый сценарием оболочки), и затем выполняет файл. Некоторые команды ведут себя по-разному в зависимости от того, запускается ли оболочка в интерактивном или неинтерактивном режиме. Вы можете прочитать больше здесь (этот документ предназначен bash, но та же концепция применима и для других оболочек).

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

phunehehe
источник
3

Да, изменить оболочку в файле паролей (/ и т.д. / пароль) для некоторой программы , которая не не позволяет бежать оболочки.

если вы хотите быть bofh / bin / false, вы будете делать именно то, что вы хотите.

Дэвид Харрис
источник
-1
adduser username -s /sbin/nologin
H2 Mac
источник
2
Обратите внимание, что имя пользователя указано в вопросе как "Джон". Не мешало бы использовать небольшую прозу, чтобы объяснить, что делает ваша команда и почему она отвечает требованиям.
Джефф Шаллер