python - 检查文件是否可执行(二进制/共享对象/shell脚本等)而不检查可执行权限
问题描述
我正在尝试生成 RPM 中某些文件的 HMAC。我必须只为那些在构建期间是二进制/可执行文件的文件生成 HMAC,并将这些生成的 HMAC 打包为单独的 RPM。我必须为系统中的每个 RPM 执行此操作,因此我看到的唯一方法是使用 %_os_install_post 宏,我在 RPM_BUILD_ROOT 中循环并找出 RPM_BUILD_ROOT 中的所有文件并在适用的情况下生成 HMAC - 所有这些都应该在调用 rpmbuild 命令时完成。问题是在 RPM_BUILD_ROOT 内部循环时,如何区分文件是否为二进制/可执行文件?检查文件的可执行权限不起作用,因为某些文件没有'x'
我也尝试使用文件实用程序,但它的问题是因为它检查文件内的编码,所以 shell 脚本被归类为“文本”。
还有哪些其他选择?我主要是在寻找使用 bash 或 python 的建议。
这是我尝试过的 -
find \$RPM_BUILD_ROOT -print| while read x;\
do\
python $topdir/check_bin_gen_hmac.py \$x $topdir\
\$RPM_BUILD_ROOT $arch;\
done;\
%{nil}
check_bin_gen_hmac.py 是在检查文件是否为二进制/可执行文件后应生成 HMAC 的脚本。
解决方案
推荐阅读
- react-native - Callback in React Native onPress for a Method
- javascript - 从外部 javascript 渲染 HTML
- java - Springboot 应用程序抛出 java.lang.Exception: DEBUG STACK TRACE for PoolBackedDataSource.close()
- python - 我如何检查我的聊天机器人中的 2 个句子是否相似
- windows - 无法在 Windows 上编译 gstreamer,因为它缺少 glib-2.0
- android - 如何从活动回收器适配器更改活动中按钮的可见性
- javascript - ADFS Redirect_URI 不起作用如何重定向另一个 url?
- android - 为什么我应该使用 cronet 而不是凌空/改造?
- installation - 将 rasa-x 安装到办公室笔记本电脑的问题
- python - 将 heirachy 转换为列表的字典