AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-398223

Antwane's questions

Martin Hope
Antwane
Asked: 2018-10-27 01:09:09 +0800 CST

从 python-ldap 代码更新 AD 密码:INSUFF_ACCESS_RIGHTS

  • 0

我需要在 Python Web 应用程序(Flask)中实现“更新密码”功能。目标是允许用户在远程 Active Directory 服务器上自行更新他的密码。

我以这个快速单元测试结束

import os
import ldap

def test_change_passwd():
    ad_server = "ldaps://ad.xxx_domain.com"
    ad_dn = "CN={0},OU=Users,OU=AF,DC=xxx_domain,DC=com"

    username = 'my_username'
    old_pwd = 'the_old_complicated_password'
    new_pwd = 'the_new_complicated_password'

    cert = os.path.join('/path', "to", 'server_cert.cer')

    # LDAP connection initialization
    l = ldap.initialize(ad_server)
    # Set LDAP protocol version used
    l.protocol_version = ldap.VERSION3
    # Force cert validation
    l.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_DEMAND)
    # Set path name of file containing all trusted CA certificates
    l.set_option(ldap.OPT_X_TLS_CACERTFILE, cert)
    # Force libldap to create a new SSL context (must be last TLS option!)
    l.set_option(ldap.OPT_X_TLS_NEWCTX, 0)
    # Bind
    l.simple_bind_s(ad_dn.format(username), old_pwd)

    # Now, perform the password update
    newpwd_utf16 = '"{0}"'.format(new_pwd).encode('utf-16-le')
    mod_list = [(ldap.MOD_REPLACE, "unicodePwd", newpwd_utf16)]
    l.modify_s(ad_dn.format(username), mod_list)

当我运行它时,它在最后一行 ( l.modify_s()) 上失败并出现以下错误:

INSUFFICIENT_ACCESS: {'info': u'00000005: SecErr: DSID-031A11D7, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0\n', 'desc': u'Insufficient access'}

我不知道问题是来自我的 python 代码还是我的用户在目录中的错误配置。另外,我不是AD服务器的管理员(对此一无所知)。

我是否需要为我的用户设置一些特殊的东西以允许他自行更新他的密码?我是否使用正确的方法更新密码?

注意:我也尝试过这种方法来更新密码,但没有成功:

l.passwd_s(dn.format(username), old_pwd, new_pwd)

失败并出现错误:

PROTOCOL_ERROR({'info': u'0000203D: LdapErr: DSID-0C0911D4, comment: Unknown extended request OID, data 0, v3839', 'desc': u'Protocol error'},)

我到处读到这个功能不应该与 AD 服务器一起使用......

active-directory
  • 1 个回答
  • 3849 Views
Martin Hope
Antwane
Asked: 2018-06-20 01:46:40 +0800 CST

带有“通用”驱动程序的 docker-machine:安全问题

  • 3

我想使用 docker-machine 从我的本地计算机在 Debian 9 服务器上部署容器。

我按照此页面的说明进行操作,其中清楚地表明:

如果您在主机上使用 « sudo »,请确保配置无密码 sudo:

# visudo
%sudo   ALL=(ALL) NOPASSWD:ALL

此外,docker-machine 驱动程序的docker 文档generic也提到了相同的内容:

须藤权限

用于 SSH 进入主机的用户可以用--generic-ssh-userflag 指定。此用户需要无密码 sudo 权限。如果不是这种情况,您需要编辑sudoers文件并将用户配置为 sudoerNOPASSWD

我不是专家,但我觉得这里出了点问题……不允许生产服务器上的用户在没有密码的情况下执行任何命令会造成安全漏洞吗?还是我错过了什么?

security
  • 1 个回答
  • 318 Views
Martin Hope
Antwane
Asked: 2017-02-02 13:09:32 +0800 CST

为 gunicorn 指标配置 datadog-agent

  • 1

我的 Debian 8 服务器上安装了 datadog-agent。它已经配置好并且可以很好地报告有关 postgres、nginx、系统等的指标。

我想监控我的 gunicorn 守护进程(我在这台服务器上有 2 个 Django 网站)。据我了解,datadog-agent 已经集成了一个 statsd 服务器,所以我不必安装一个:

# ps ax | grep datadog
18816 ?        Ss     0:00 /opt/datadog-agent/embedded/bin/python /opt/datadog-agent/bin/supervisord -c /etc/dd-agent/supervisor.conf
18822 ?        Sl     0:01 /opt/datadog-agent/embedded/bin/python /opt/datadog-agent/agent/dogstatsd.py --use-local-forwarder
18824 ?        S      0:01 /opt/datadog-agent/embedded/bin/python /opt/datadog-agent/agent/ddagent.py
18825 ?        S      0:01 /opt/datadog-agent/embedded/bin/python /opt/datadog-agent/agent/agent.py foreground --use-local-forwarder

我认为“dogstatsd.py”是 statsd 服务器,但也许我错了?

然后,我修改了我的 gunicorn 启动脚本以集成--name选项来为我的进程设置名称并--statsd-host指示将指标发送到何处。

# ps ax | grep gunicorn
18588 ?        Ss     0:00 /var/projects/my_project/venv/bin/python3 /var/projects/my_project/venv/bin/gunicorn --name my_project --statsd-host=localhost:8125 --workers 2 --bind unix:/var/tmp/my_project.sock core.wsgi:application
18630 ?        S      0:00 /var/projects/my_project/venv/bin/python3 /var/projects/my_project/venv/bin/gunicorn --name my_project --statsd-host=localhost:8125 --workers 2 --bind unix:/var/tmp/my_project.sock core.wsgi:application
18632 ?        S      0:00 /var/projects/my_project/venv/bin/python3 /var/projects/my_project/venv/bin/gunicorn --name my_project --statsd-host=localhost:8125 --workers 2 --bind unix:/var/tmp/my_project.sock core.wsgi:application

现在我从 /etc/dd-agent/conf.d/ 中的示例创建 gunicorn.yaml 如下

# NB: This check requires the python environment on which gunicorn runs to
# have the `setproctitle` module installed (https://pypi.python.org/pypi/setproctitle/)

init_config:

instances:
  # The name of the gunicorn process. For the following gunicorn server ...
  #
  #    gunicorn --name my_web_app my_web_app_config.ini
  #
  #  ... we'd use the name `my_web_app`.
  #
  - proc_name: my_project

重新启动代理后,我等待几秒钟并检查其状态:

# sudo service datadog-agent info
# [...]
  Checks
  ======

    gunicorn
    --------
      - instance #0 [ERROR]: 'Found no master process with name: gunicorn: master [my_project]'
      - Collected 0 metrics, 0 events & 1 service check
      - Dependencies:
          - psutil: 4.4.1

我找不到我无法配置它的地方。有人可以帮助我吗?

linux web-server gunicorn wsgi datadog
  • 2 个回答
  • 1344 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve