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

каковы минимальные разрешения пользователя, необходимые для передачи файлов scp на удаленный сервер?

Я хочу настроить задание cron для передачи данных с одного хоста (A) на другой (B).

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

Однако я не хочу, чтобы вновь созданный пользователь ИМЕЛ ЛЮБЫЕ разрешения сверх минимума, необходимого для копирования файлов с машины A на B.

Я думаю, что пользователь:

  1. необходимо иметь возможность войти на машину B
  2. не должен запускать sudo или su
  3. в идеале, он не должен иметь возможность использовать cd над своим домашним каталогом (звучит как пользователь chrooted, не знаю, возможно ли это)
  4. должен иметь возможность писать только в один файл (в его домашнем каталоге на машине B) и даже не иметь права запускать какие-либо процессы или скрипты и т. д.

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

Я бы хотел запустить эту передачу как автоматическое задание cron. Я также хотел бы отправить файл как сжатый и зашифрованный, поэтому мне нужно знать, как:

  1. encrypyt без запроса пароля (чтобы его можно было использовать в скрипте)
  2. как использовать scp без запроса пароля

Любая помощь по вышеуказанному будет оценена

Кстати, я использую Ubuntu 10.0.4 LTS, и я думаю об использовании gpg для шифрования, но я открыт для предложений / рекомендаций

Вы можете установить rssh для этого: ограниченная оболочка SSH. Это ограничит возможность вашего пользователя инициировать только сеанс «SFTP» или SCP. Когда пользователь пытается открыть сеанс терминала, rssh отклоняет запрос.

В rssh оболочку можно активировать, назначив ее пользователю как оболочку. Это можно сделать в /etc/passwd например.

Обратите внимание, что у пользователя по-прежнему будет доступ для чтения всех регулярных файлов на диске. Это можно решить с помощью SELinux / AppArmor / chroot, но это относительно сложная настройка. Если вас интересует доступ только к определенным папкам, я бы предложил вместо этого запустить выделенный сервер FTPS.

Могу я порекомендовать вам не использовать sftp? Блокировка учетной записи пользователя, в которую люди могут входить, чтобы ничего можно сделать довольно сложно, и sftp полагается на обычную аутентификацию ssh.

Вместо этого я бы порекомендовал вам использовать ftps. Таким образом вы получаете зашифрованный туннель и можете использовать сертификаты клиента X.509 для аутентификации, избегая паролей.

Видеть https://help.ubuntu.com/10.04/serverguide/C/ftp-server.html для получения дополнительной информации о ftps.