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

13

Есть ли способ создать учетную запись пользователя в Solaris, которая позволяет пользователям выполнять только одну команду? Нет логина или чего-то еще. Я мог бы сделать это с /usr/bin/falseв /etc/passwdи просто получить от пользователя ssh <hostname> <command>, но есть лучше способ сделать это?

Уилл Доулинг
источник

Ответы:

15

Вы можете использовать принудительную команду, если пользователи могут подключаться только через ssh. По сути, всякий раз, когда пользователь подключается через ssh с определенным ключом и определенным именем пользователя, вы заставляете его выполнять команду (или сценарий или), которую вы определили в .ssh / authorized_keys. Команды, выданные пользователями, будут игнорироваться.

Например:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key
Бартелеми
источник
Ну, вы оба были правы. То, что я сделал, было создано сценарий, который предоставляет меню в приглашении и использовал команду принудительной проверки в .ssh / authorized_keys на сервере перед ключом для авторизованного пользователя. Это теперь позволяет ему подключиться к серверу по ssh, и в командной строке выдается отличное меню с несколькими командами для выполнения. Больше ничего не может быть запущено. Счастливые дни!
Уилл Доулинг
2
Под редакцией; эти параметры необходимы для защиты принудительной команды: «без переадресации портов, без пересылки X11, без переадресации агентов, без pty».
Тобу
11

Вы можете настроить оболочку этого пользователя на сценарий, просто запустив команду, которую вы хотите разрешить: всякий раз, когда пользователь входит в систему, команда запускается, затем пользователь выходит из системы. А поскольку нет «полной оболочки», вам не нужно иметь дело с тем, что пользователь пытается что-то напугать;)

Tante
источник
0

Мне интересно, если вы могли бы сделать это с RBAC и дать пользователю привилегированную оболочку (pfsh, pfcsh или pfksh) и создать профиль для команд, которые будут разрешены пользователю (-ам).

sleepyweasel
источник