Назад | Перейти на главную страницу

Отключить команды Linux

Я пишу простую программу для резервного копирования некоторых файлов в Linux. Транзакция будет проходить через SSH, и каждая копия программы будет иметь свою учетную запись в Linux, к которой она будет подключаться.

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

Я хотел бы отключить их возможность делать что-либо с этим устройством, кроме того, что я разрешил бы делать программному обеспечению резервного копирования. То есть им нужно только создавать новые файлы и читать старые (без обновлений и удалений). Им не нужна способность выполнять bc или who или что-нибудь в этом роде.

Я думал о попытке chroot каждого пользователя в свой домашний каталог, но я не знаю, как это сделать.

Любые предложения о том, как достичь этой желаемой функциональности?

Спасибо!

В authorized_keys В файле для учетной записи можно указать команду, которая будет использоваться всякий раз, когда для аутентификации используется определенный ключ. Это потребует от вас настройки аутентификации с использованием ключей вместо пользователя / пароля, хотя, по-моему, это все равно хорошо.

Например, gitosis использует этот метод, чтобы позволить людям подключаться к серверу с помощью ssh для туннелирования протокола git, но не разрешать им входить в систему. На странице руководства authorized_keys приведены примеры, например:

    command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net

Используйте scponly с опцией chroot. Это даст пользователям специальный chrooted логин, в котором будут использоваться только двоичные файлы.

Видеть http://www.sublimation.org/scponly/wiki/index.php/Install

Вы можете использовать rssh (http://www.pizzashack.org/rssh/), это похоже на scponly, но поддерживает scp, sftp, rsync и cvs