我想在CentOS系统上使用python创建一个用户组.当我说'使用python'时,我的意思是我不想做像os.system这样的事情,并给出unix命令来创建一个新的组.我想知道是否有任何python模块处理这个问题.
在网上搜索没有透露我想要的东西,除了python用户组..所以我不得不问这个.
我通过搜索SO了解了grp模块,但是找不到有关创建组的任何信息.
编辑:我不知道我是否必须为此开始一个新问题,但我也想知道如何将(现有的)用户添加到新创建的组中.
任何帮助赞赏.谢谢.
我不知道有一个python模块,但/ etc/group和/ etc/gshadow格式是非常标准的,所以如果你想要你可以打开文件,解析它们当前的内容,然后添加新的组如有必要.
在您这样做之前,请考虑:
如果您尝试添加系统中已存在的组,会发生什么
当程序的多个实例尝试同时添加组时会发生什么
如果对组格式进行不兼容的更改,那么您的代码会发生什么变化
NIS,LDAP,Kerberos,......
如果您不愿意处理这些类型的问题,只需使用子进程模块并运行groupadd.这样就不太可能破坏客户的机器.
你可以做的另一件事就是不如编写自己的那么脆弱,就是将代码包装在Python中的groupadd.c(在shadow包中)并以这种方式执行.我不认为这会给你带来太大的影响而不仅仅是执行它,而且它会给你的构建增加更多的复杂性和脆弱性.
我认为您应该使用程序中的命令行程序,如果出现问题,我们会非常谨慎地确保它们不会破坏组文件.
但是,如果您选择这样做,那么文件格式就可以自行编写