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 个奇怪的文件,这种情况一直在发生。
我需要帮助来理解
- 如果此密码是从 RPM 抛出的,如果是,为什么? RPM 是否仅在规定的时间段内将密码存储在缓存中?
- 假设是这样,我已经在我的第二个文件中手动复制了'expect'代码多次提供密码来提供密码,仍然没有用
- 'interact'犯规了吗?
非常感谢您的帮助。谢谢
我认为问题在xargs
。 xargs
会尝试向命令提供尽可能多的参数,直到整个命令行超过限制。所以当你有很多文件时,xargs
可能需要多次调用rpm
。 GNU 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
#
我正在使用以下命令签署一大组 RPM 包 (50000)
find -name \*.rpm |xargs rpm --resign
作为 RPM 命令结构的一部分,它要求输入密码。我正在使用 expect 脚本来提供密码,就像这样。
expect -c "
spawn
expect \"Enter pass phrase: \"
send \r
interact
这对于前 1400 个奇数文件非常有效。之后,我再次被提示输入密码。这次我必须手动提供它。就这样,对于每 1400 个奇怪的文件,这种情况一直在发生。
我需要帮助来理解
- 如果此密码是从 RPM 抛出的,如果是,为什么? RPM 是否仅在规定的时间段内将密码存储在缓存中?
- 假设是这样,我已经在我的第二个文件中手动复制了'expect'代码多次提供密码来提供密码,仍然没有用
- 'interact'犯规了吗?
非常感谢您的帮助。谢谢
我认为问题在xargs
。 xargs
会尝试向命令提供尽可能多的参数,直到整个命令行超过限制。所以当你有很多文件时,xargs
可能需要多次调用rpm
。 GNU 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
#