Devpi的--restrict-modify param文档指定,除了为用户指定访问权限外,还可以修改组的访问权限:
指定哪些用户/组可以创建其他用户及其索引。多个用户和组由逗号分隔。组需要以冒号作为前缀,如':group‘。..。
但是,没有关于如何实际创建组的文档;这是否与主机上可用的Unix组直接集成?
发布于 2018-04-25 09:44:38
devpi服务器本身不进行任何组管理。相反,它将其委托给auth插件。请看一下devpiserver_auth_user挂钩规范:
返回包含身份验证结果的dict。必须使用具有下列值之一的键"status“返回dict:
可以选择地,插件可以返回一个组名列表,用户是使用结果dict的“group”键的成员。
AFAIK目前只有使用组的插件:devpi-ldap,查看其代码以获取用法示例。。
至于将访问权限绑定到unix组,您可以轻松地自己编写这样一个auth插件。下面是一个简单的插件示例,它不执行任何实际的auth操作,只返回请求访问的用户所属的unix组:
# myplugin.py
import grp
from pluggy import HookimplMarker
@hookimpl(tryfirst=True)
def devpiserver_auth_user(userdict, username, password):
# get all groups for the user
groups = [group.gr_name for group in grp.getgrall() if username in group.gr_mem]
return {'status': 'ok', 'groups': groups}现在,在插件的安装脚本中添加devpi的入口点,就可以了:
from setuptools import setup
setup(
name='devpi-unix-group-auth',
py_modules=['myplugin'],
entry_points={
'console_scripts': {
'devpi_server': ['devpi-unix-group-auth = myplugin']
},
...
)https://stackoverflow.com/questions/49901766
复制相似问题