首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用devpi服务器创建组吗?

可以使用devpi服务器创建组吗?
EN

Stack Overflow用户
提问于 2018-04-18 14:02:35
回答 1查看 323关注 0票数 1

Devpi的--restrict-modify param文档指定,除了为用户指定访问权限外,还可以修改组的访问权限:

指定哪些用户/组可以创建其他用户及其索引。多个用户和组由逗号分隔。组需要以冒号作为前缀,如':group‘。..。

但是,没有关于如何实际创建组的文档;这是否与主机上可用的Unix组直接集成?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-25 09:44:38

devpi服务器本身不进行任何组管理。相反,它将其委托给auth插件。请看一下devpiserver_auth_user挂钩规范:

返回包含身份验证结果的dict。必须使用具有下列值之一的键"status“返回dict:

  • "ok“-身份验证成功
  • “未知”-没有匹配的用户,其他插件也尝试过。
  • “拒绝”-无效密码,身份验证停止

可以选择地,插件可以返回一个组名列表,用户是使用结果dict的“group”键的成员。

AFAIK目前只有使用组的插件:devpi-ldap查看其代码以获取用法示例。

至于将访问权限绑定到unix组,您可以轻松地自己编写这样一个auth插件。下面是一个简单的插件示例,它不执行任何实际的auth操作,只返回请求访问的用户所属的unix组:

代码语言:javascript
复制
# 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的入口点,就可以了:

代码语言:javascript
复制
from setuptools import setup

setup(
    name='devpi-unix-group-auth',
    py_modules=['myplugin'],
    entry_points={
    'console_scripts': {
        'devpi_server': ['devpi-unix-group-auth = myplugin']
    },
    ...
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49901766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档