Я пишу простую программу для резервного копирования некоторых файлов в 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