LINUX.ORG.RU
ФорумAdmin

Ограничить SSH юзера выполнять только одну команду


1

2

Приветствую!
Есть потребность как-то реализовать такое:
Юзер коннектится по SSH к серверу, вводит логин-пароль, получает bash или что-то похожее, вводит одну команду с параметрами, созерцает выхлоп и уходит. НО! При попытке выполнить что-то кроме этой команды, юзер должен получать по рукам.
Как бы это лучше реализовать?

★★★★★

Последнее исправление: af5 (всего исправлений: 1)

запилить юзеру вместе шелла свой скрипт?

infery
()

rssh в его home со скриптом который должен выполняться.

dada ★★★★★
()
Ответ на: комментарий от sin_a

Если бы меня такой вариант устраивал, я бы и тему не создавал.
Нет, мне нужно чтоб юзер получал именно шелл, но с такими ограничениями

af5 ★★★★★
() автор топика
Ответ на: комментарий от af5

Зависит от причины, вызвавшей задачу. Если нужна просто видимость то можно сделать скрипт имитирующий оболочку, но на любой ввод, кроме разрешённого, возвращающий требуемую ошибку.

sin_a ★★★★★
()
Ответ на: комментарий от af5

никак. Задача сводится к «как ограничить пользователя одной командой», без слова ssh

leave ★★★★★
()
Последнее исправление: leave (всего исправлений: 1)
Ответ на: комментарий от af5

while read i ; do echo «you cannot execute a command $i» ; done

Ну там типа if добавить и проверять на нужную команду и exit

upd: да, и prompt имитировать

sin_a ★★★★★
()
Последнее исправление: sin_a (всего исправлений: 1)

GNU Rush is a Restricted User Shell. It is intended for use with ssh, rsh and similar remote access programs. Using a sophisticated configuration file, Rush gives you complete control over the command lines that users execute, the usage of system resources, such as virtual memory, CPU time, etc. In particular, it allows to run remote programs in a chrooted environment.

anonymous
()
Ответ на: комментарий от sin_a

Сделал так:

#mkdir /mypath
#cd /mypath
#ln -s /usr/bin/nfdump
#ln -s /bin/rbash

#vi /bin/myrbash
#cat /bin/myrbash
  #!/bin/bash
  export PATH=/mypath
  rbash

#useradd nf1 -s /bin/myrbash
#passwd nf1
Теперь счастливый юзер может запускать nfdump с нужными параметрами, но ни чего более делать не может.

af5 ★★★★★
() автор топика
Ответ на: комментарий от af5

UPD2
Ему не нравится мой myrbash
Если ставить просто rbash - то всё ок
Чем myrbash для paramiko может быть хуже rbash и как это исправить?

af5 ★★★★★
() автор топика
Ответ на: комментарий от af5

UPD3
Победил вражину
шеллом поставил rbash, а в /home/nf1 сделал .bash_profile в котором export PATH=/mypath

af5 ★★★★★
() автор топика
Ответ на: комментарий от sin_a

добавил в /etc/shells - та же фигня

af5 ★★★★★
() автор топика

почитай ещё про gitolite, там так же пользователя запирают в собственном шелле. Но есть нюанс: нужно авторизовываться по ключу, потому что в ~/.ssh/authorized_keys используется опция «COMMAND=...» в самом начале, перед указанием валидного pubkey

leader32
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.