Rose debug info
---------------

Изолируем пользователей ssh в домашней директории с помощью lshell

Установим lshell, он есть в репозиториях большинства дистрибутивов. Установка для дебианоподобных дистров:

# apt-get install lshell

Затем открываем конфигурационный файл и редактируем

# nano /etc/lshell.conf

Там в основном все просто и понятно, обратим внимания на некоторые переменные в разделе [default].
Команды разрешённые для выполнения:

allowed         : ['ls','echo','cd','ll','rsync','mkdir']

В allowed нельзя вписывать программы которые умеют бродить по каталогам например mc, т.к из lshell выполнение передается в bash и такие программы смогут выйти за пределы домашнего каталога. Поэтому тут будьте внимательны.

Команды которые можно выполнять через ssh:

overssh         : ['ls','rsync']

В конце конфигурационного файла можно указать индивидуальные настройки для определенного юзера примерно так:

[user]
allowed: ['ls','echo','cd','ll','rsync','mkdir','cp','mv']
path: ['/backups']
overssh: ['ls', 'rsync']

Тут например мы разрешили пользователю user выполнять команды указанные в allowed, кроме домашней папки он может ходить в /backups, и может выполнять по ssh ls и rsync.

После редактирования сохраняемся и и закрываем файл.
Теперь нужно изменить shell у пользователей, которых мы ограничиваем.

# chsh -s /usr/bin/lshell user
# chsh -s /usr/bin/lshell user1
# chsh -s /usr/bin/lshell user2
.....

Теперь пробуем зайти по ssh user’ом и проверяем, что он изолирован в домашней папке и может выполнять только команды указанные в allowed.

Поделиться
Отправить
2015   centos   debian   lshell   ssh   ubuntu