0

我正在寻找某种方法来构建某个脚本。

  • 有一些 (Linux) 用户 A、B 和 C 将图像扫描到 $HOME/images/scan
  • 他们应该将这些照片上传到他们没有帐户的远程服务器。
  • 因此是虚拟用户 X,他在本地和远程机器上都有帐户,但不能直接访问用户的主目录。
  • 它们都有共同的组“图像”,并且用户的扫描目录对于该组是可读的。

所以我想找到一种方法,用户如何运行一个脚本,该脚本使用远程服务器上的 X 权限和帐户将图片上传到远程服务器。我为此制作了一个 rsa 密钥,并将其添加到远程服务器授权密钥文件中。对于用户 X,一切正常。

我尝试了一些 setgid/setuid perl-scripts,但它们无法以用户 X 权限运行 scp,而且它们也不使用它的 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

4

2 回答 2

0

您不应该在本地机器上需要用户 X。用户和密码(或 RSA 密钥)仅用于访问远程机器,与本地机器无关。

我不熟悉 Net::SCP 但我熟悉 Unix scp 命令,它的工作原理如下:

我是用户 A。我想使用帐户 X 将文件复制到机器 M。我输入:

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

只要我对 my_local_file.ext 具有读取权限,并且用户 X 对机器 M 上的目录 /path/to/file/ 具有写入权限,并且身份验证一切正常,那么一切都很好。

如果你让它为用户 X 工作,那么听起来你已经基本解决了这个问题。您所要做的就是将 RSA 密钥放在本地计算机上用户 A、B 和 C 的正确位置,然后以用户 A、B 或 C 的身份运行脚本。

为用户 A givent hat 设置 RSA 密钥的方式可能会有些复杂,您将以用户 X 身份登录。


说了这么多,听起来好像您真正需要的是远程计算机上的 ftp 或 sftp 服务器。可以将 FTP 配置为允许匿名或不受限制地访问某些区域以进行上传和/或下载。

于 2010-12-15T16:20:03.427 回答
0

我终于解决了问题:我让用户通过 webclient(具有用户 X 权限)从服务器请求从本地机器获取文件到服务器。

于 2011-03-31T15:23:07.753 回答