使用python在linux中创建一个用户组

Shr*_*rat 6 python linux usergroups

我想在CentOS系统上使用python创建一个用户组.当我说'使用python'时,我的意思是我不想做像os.system这样的事情,并给出unix命令来创建一个新的组.我想知道是否有任何python模块处理这个问题.

在网上搜索没有透露我想要的东西,除了python用户组..所以我不得不问这个.

我通过搜索SO了解了grp模块,但是找不到有关创建组的任何信息.

编辑:我不知道我是否必须为此开始一个新问题,但我也想知道如何将(现有的)用户添加到新创建的组中.

任何帮助赞赏.谢谢.

Jac*_*oyd 11

我不知道有一个python模块,但/ etc/group和/ etc/gshadow格式是非常标准的,所以如果你想要你可以打开文件,解析它们当前的内容,然后添加新的组如有必要.

在您这样做之前,请考虑:

  • 如果您尝试添加系统中已存在的组,会发生什么
  • 当程序的多个实例尝试同时添加组时会发生什么
  • 如果对组格式进行不兼容的更改,那么您的代码会发生什么变化
  • NIS,LDAP,Kerberos,......

如果您不愿意处理这些类型的问题,只需使用子进程模块并运行groupadd.这样就不太可能破坏客户的机器.

你可以做的另一件事就是不如编写自己的那么脆弱,就是将代码包装在Python中的groupadd.c(在shadow包中)并以这种方式执行.我不认为这会给你带来太大的影响而不仅仅是执行它,而且它会给你的构建增加更多的复杂性和脆弱性.


Joh*_*ooy 5

我认为您应该使用程序中的命令行程序,如果出现问题,我们会非常谨慎地确保它们不会破坏组文件.

但是,如果您选择这样做,那么文件格式就可以自行编写