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

pwd окружают встроенное использование путь, который оболочка отслеживает когда Вы cd (и хранилища это в $PWD). Это означает, есть ли у Вас символьная ссылка на комплекс (глубоко) соединяют каналом, это скажет Вам, что Вы ввели для изменения на тот каталог вместо реального пути. Это сделано, чтобы дать Вам, что Вы хотите большую часть времени.

/bin/pwd использование getcwd системный вызов (который в эти дни является вызовом библиотеки, читая /proc/self/cwd) который возвращает канонический путь для текущего каталога без всех обходов символьной ссылки.

Как Steven D указанный, pwd имеет -P опция проигнорировать $PWD. Это также имеет -L опция возвратить содержание $PWD. Страница справочника для pwd не говорит, какая опция используется по умолчанию, но опыт говорит мне, что вышеупомянутое описание корректно (оболочка pwd по сравнению с. /bin/pwd). Однако Вы не должны, вероятно, полагаться на это и просто использовать pwd -P.

17
19.07.2012, 02:53
5 ответов

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

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

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

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

9
27.01.2020, 19:47

Относительно вопроса Вы пытаетесь ответить:

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

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

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

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

9
27.01.2020, 19:47

Да, измените оболочку в файле паролей (/etc/passwd) к некоторой программе, которая не не позволит Escape оболочки.

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

3
27.01.2020, 19:47
adduser username -s /sbin/nologin
3
27.01.2020, 19:47
adduser john -s /sbin/nologin

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

Интерактивная и не -интерактивная оболочка

Интерактивная оболочка взаимодействует с пользователем. Если это оболочка входа, любая команды в ~/.login выполняются, если это не оболочка входа в систему (, вы можете порождать интерактивные подоболочки )..login не оценивается.

Не интерактивная -оболочка не взаимодействует с пользователем, а работает сценарий оболочки. Всякий раз, когда вы вызываете сценарий оболочки, самая первая строка ("shebang" #!/bin/bash )порождает не -интерактивную подоболочку. Все не -интерактивные оболочки не являются оболочками входа в систему, поэтому они не оценивают.авторизоваться.

Любая оболочка, в которую может войти пользователь, по определению является интерактивная оболочка. Если бы это было не (вроде /bin/false или /bin/nologon ), пользователь не может войти в систему.

0
06.05.2020, 17:13

Теги

Похожие вопросы