随笔 - 192,  文章 - 1,  评论 - 6,  阅读 - 51476

 

区别:

1.使用systemctl命令执行时,即使是以root用户身份执行,也会关注服务的用户组权限。这是因为systemctl在执行服务管理操作时,会检查服务的配置文件中设置的用户和用户组权限,并确保当前用户具有足够的权限来管理服务。

2.当你以root用户身份使用os.system执行命令时,它可能会绕过服务的用户组权限的限制。这是因为os.system函数直接调用底层操作系统的命令解释器来执行命令,而不会像systemctl那样验证服务的用户组权限。

总结:

所以,以root用户身份执行systemctl和使用os.system执行命令可能会导致不同的结果,因为systemctl会更加关注服务的用户组权限,而os.system可能会绕过这些权限的限制。为了确保一致的行为并遵循正确的权限控制,建议在需要管理系统服务时使用systemctl命令。这样可以确保服务以预期的用户组权限运行,并且操作符合系统的安全性要求

引发的问题:

  1.ck监控程序通过os.system包启动ck服务导致日志文件权限被修改为root权限

解决方案:

  使用python的 subprocess 包来执行shell命令

   subprocess.run(["su", "-", username, "-c", command])

 

posted on   輪滑少年  阅读(203)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示