我需要在 RPM 的 %post 部分以不同的用户身份运行命令。
目前我正在通过 python 使用一些 hack 但它不是最好的方法(它确实感觉有点脏)......
%post -p /usr/bin/python
import os, pwd, subprocess
os.setuid(pwd.getpwnam('apache')[2])
subprocess.call(['/usr/bin/something', 'an arg'])
有没有合适的方法来做到这一点?
如果/usr/bin/something您要作为软件包的一部分安装某些内容,请使用类似的内容进行安装
attr(4755, apache, apache)   /usr/bin/something
像这样安装时,/usr/bin/something将始终以 user 身份运行apache,无论实际运行它的用户是什么。