如何在Linux的find命令中解析密码?

5

我需要在查找远程Linux系统中的文件时解析密码,如何在Linux系统中读取远程目录?

我已经尝试了一个方法:

ssh root@192.168.5.6 "find /var/www/home" sshpass -p pass

如果有人在Linux上遇到了该问题,它无法正常工作,请告诉我...

我尝试了两种解决方案:

 opendir(IN, "root@192.168.5.6:/var/www/home") || die "can't open !";

我也尝试了Perl,但它不能正常工作,

我应该如何开始?如何读取远程目录?


为什么不使用ssh密钥,避免使用密码呢? - simont
是的,它可以工作,但我读取不同的远程目录作为随机目录,所以我不能同时更改ssh密钥,因此我在查找期间解析密码。另外一种方法是我不能使用Linux中的opendir函数,这是可能的吗? - AlexPandiyan
“我随机读取不同的远程目录” - 这是什么意思?一个 SSH 密钥可以用于远程机器上的所有目录。您是否使用多个远程连接? - simont
我们可以在不同的服务器上使用相同的密码吗?我该如何开始并能否请你解释一下...怎么做... - AlexPandiyan
2个回答

1
使用 Net::SFTP::Foreign
use Net::SFTP::Foreign;
my $sftp = Net::SFTP::Foreign->new($host, user => $user, password => $password, autodie => 1);
my $ls = $sftp->ls($dir);

use Data::Dumper;
print Dumper($ls);

它出现错误,无法找到IO/Pty.pm,我搜索ppm但未找到模块,如何安装IO::Pty模块... - AlexPandiyan
你使用的是哪个操作系统和版本/发行版? - salva
没有Ubuntu 11.3这个版本。不过,Net::SFTP::Foreign和IO::Pty都可以从Ubuntu软件仓库中获取:sudo apt-get install libnet-sftp-foreign-perl libio-pty-perl - salva
sudo:/var/lib/sudo可由非所有者(040777)编写,应为模式0700,错误 - AlexPandiyan
您的系统中sudo配置有误。您是否知道其他方法可以成为该机器的root用户?您是否知道root密码?您也可以尝试使用其他软件包安装程序,如Ubuntu软件中心。 - salva

0

在 Perl 中那样不起作用。尝试类似这样的内容:

open(IN, "$cmd|")

其中$cmd是在命令行中适用的命令。


它可以用于命令,但我的问题是我想在Linux系统中读取一个目录,怎么做? - AlexPandiyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接