Безопасная загрузка без учетной записи на удаленном сервере (scp) - PullRequest
0 голосов
/ 15 декабря 2010

Я ищу способ построить определенный скрипт.

  • Некоторые (Linux) пользователи A, B и C сканируют изображения в $ HOME / images / scan
  • Они должны загрузить эти фотографии на удаленный сервер, где у них нет учетных записей.
  • Следовательно, это виртуальный пользователь X, который имеет учетную запись на локальном и удаленном компьютере, но не имеет прямого доступа к домашним каталогам пользователя.
  • Все они имеют общую группу "images", и для этой группы доступен читаемый каталог пользователя.

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

Я пробовал некоторые perl-скрипты setgid / setuid, но они не могут запускать scp с правами пользователя X и не используют его rsa-key. Примерно такой пример:

#!/usr/bin/perl

use strict;
use warnings;
use Net::SCP qw( scp iscp );
my $scp = Net::SCP -> new( '192.168.1.3', 'X' );
$scp->put( 'file.jpg' ) or die $scp->{errstr};

Так что я ищу другие способы удовлетворить мои потребности.

Заранее спасибо!

Kõike hääd,
WK

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Я, наконец, перевернул проблему: я разрешил пользователю запрашивать у сервера через веб-клиента (с разрешениями пользователя X) файлы с локальных компьютеров на сервер.

0 голосов
/ 15 декабря 2010

Вам не нужен пользователь X на локальном компьютере.Пользователь и пароль (или ключ RSA) предназначены только для доступа к удаленной машине, ничего общего с локальной машиной.

Я не знаком с Net :: SCP, но знаком с командой Unix scpи это работает так:

Я пользователь A. Я хочу скопировать файл на компьютер M, используя учетную запись X. Я набираю:

scp my_local_file.ext X @ M: / path /в / file / my_file.ext

Пока у меня есть разрешения на чтение для my_local_file.ext, а у пользователя X есть права на запись в каталог / путь / в / файл / на компьютере M, и аутентификация проходит нормально, тогда все в порядке.

Если у вас это работает для пользователя X, значит, вы, по сути, решили проблему.Все, что вам нужно сделать, это поместить ключ RSA в нужное место на локальном компьютере для пользователей A, B и C, и просто запустить сценарий от имени пользователя A, B или C.

Может бытьнекоторые сложности, связанные с настройкой ключа RSA для пользователя A, если вы войдете в систему как пользователь X.


Сказав все это, звучит так, будто вам действительно нужносервер ftp или sftp на удаленной машине.Можно настроить FTP, чтобы разрешить анонимный или неограниченный доступ к определенным областям для загрузки и / или загрузки.

...