如果我理解正确的话,Landscape 在运行之前会将所有脚本作为文件上传,并将它们存储在 /tmp 下。如果您使用 noexec 配置 tmp 分区,这当然是一个问题,并给我留下类似于以下的错误:
File "/usr/lib/python3.10/os.py", line 598, in _execvpe
exec_func(file, *argrest)
PermissionError: [Errno 13] Permission denied: '/tmp/tmpnn0rb1qz'
那么,是否可以更改 Landscape 用于存储脚本的位置?我找不到景观配置的此类选项,配置文件中也没有任何内容。
我真的不想用 exec 配置 tmp...
Landscape 并不真正支持这一点,因此我们必须修补该文件:
/usr/lib/python3/dist-packages/landscape/client/manager/scriptexecution.py
在文本编辑器中打开fd, filename = tempfile.mkstemp()
为fd, filename = tempfile.mkstemp(dir="/path/to/where/you/want/to/store/the/scripts")
landscape-client
包时重新应用这些更改