RPM 命令反复询问密码

RPM command repeatedly asking for password

我正在使用以下命令签署一大组 RPM 包 (50000)

find  -name \*.rpm |xargs rpm --resign

作为 RPM 命令结构的一部分,它要求输入密码。我正在使用 expect 脚本来提供密码,就像这样。

expect -c "
spawn 
expect \"Enter pass phrase: \"
send \r
interact

这对于前 1400 个奇数文件非常有效。之后,我再次被提示输入密码。这次我必须手动提供它。就这样,对于每 1400 个奇怪的文件,这种情况一直在发生。

我需要帮助来理解

  1. 如果此密码是从 RPM 抛出的,如果是,为什么? RPM 是否仅在规定的时间段内将密码存储在缓存中?
  2. 假设是这样,我已经在我的第二个文件中手动复制了'expect'代码多次提供密码来提供密码,仍然没有用
  3. 'interact'犯规了吗?

非常感谢您的帮助。谢谢

我认为问题xargsxargs 会尝试向命令提供尽可能多的参数,直到整个命令行超过限制。所以当你有很多文件时,xargs可能需要多次调用rpmGNU xargs--show-limits 可以“显示操作系统对命令行长度的限制”。例如在我的系统上:

# xargs --show-limits < /dev/null
Your environment variables take up 1689 bytes
POSIX lower and upper limits on argument length: 2048, 2094592
Maximum length of command we could actually use: 2092903
Size of command buffer we are actually using: 132761
#