{"id":22214372,"url":"https://github.com/zstyblik/pure-ftpd-extauth-ldap","last_synced_at":"2025-03-25T06:25:02.571Z","repository":{"id":24055785,"uuid":"27441643","full_name":"zstyblik/pure-ftpd-extauth-ldap","owner":"zstyblik","description":"External LDAP authentication script for pure-ftpd with support for checking of group membership","archived":false,"fork":false,"pushed_at":"2014-12-02T16:49:18.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T05:43:59.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zstyblik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-02T16:31:38.000Z","updated_at":"2014-12-02T16:49:19.000Z","dependencies_parsed_at":"2022-08-22T10:40:27.637Z","dependency_job_id":null,"html_url":"https://github.com/zstyblik/pure-ftpd-extauth-ldap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zstyblik%2Fpure-ftpd-extauth-ldap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zstyblik%2Fpure-ftpd-extauth-ldap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zstyblik%2Fpure-ftpd-extauth-ldap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zstyblik%2Fpure-ftpd-extauth-ldap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zstyblik","download_url":"https://codeload.github.com/zstyblik/pure-ftpd-extauth-ldap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245409824,"owners_count":20610622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-02T21:16:07.206Z","updated_at":"2025-03-25T06:25:02.555Z","avatar_url":"https://github.com/zstyblik.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [pure-ftpd] external auth plugin - LDAP + supplementary groups\n\nExternal LDAP authentication script for pure-ftpd with support for checking of\ngroup membership\n\n## Features:\n- adds support of suplementary groups [andreas]\n- straight/proxy auth against LDAP server\n- access to passwords is not needed by the proxy user\n- LDAP/LDAPS/TLS is supported\n- required group(s)\n\n## Missing features:\n- *annonymous* *binds* to LDAP *are* currently *unsupported*\n- quotas and whatever additional features\n\n## Requirements:\n- pure-ftpd v1.0.2(1|2) or newer\n- patch from http://pelme.se/~andreas/code/pure-ftpd-auth/\n- LDAP server, this script, common things\n\n## Motivation:\n- pure-ftpd seemed to be buggy with shadow \u0026\u0026 nss-ldap\n- LDAP authentication *should* *not* be done the way it's in\n  pure-ftpd LDAP auth module [that's the view of OpenLDAP community]\n- we needed this, of course [have you expected something else?]\n\n## Licence:\n- GNU/GPLv3, Mozilla...I somewhat don't care too much. If you find\n  it usefull, let me know.\n\n## Notes:\n\n### Straight bind\nStraight bind will be always problematic in a way that you need to\nknow DN. You can construct DN from user's input or somehow, but\nit's not reliable, problematic, whatever.\nEg. user@people.domain.tld=\u003euid=user,ou=people,dc=domain,dc=tld.\n\n### Proxy bind\nProxy bind is somewhat easier. You use proxy user to find DN by\nsome criteria and try to auth against it with credentials user provided.\n\n\nPlease note, I presume your user accounts are located in\nou=people+ldapBaseDN and UID is uid=username! If this differs,\nyou need to change ldapUidBaseDN.\n\nPlease note, I presume your groups are located in\nou=group+ldapBaseDN and these are object type of posixGroup.\nIf this differs, you need to change ldapGidBaseDN.\n\nAuthenticated user must have read access to ou=group! If this isn't the\ncase, allow access or hack the script up [unbind user\n\u0026\u0026 bind proxy].\n\n\nThank you again, Andreas!\n\n\"YO, ADRIAN! I DID IT!\"\n\n2009/07/23 @ Zdenek Styblik\n\n```\nuser_quota_size:xxx\nuser_quota_files:xxx\nper_user_max:xxx\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzstyblik%2Fpure-ftpd-extauth-ldap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzstyblik%2Fpure-ftpd-extauth-ldap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzstyblik%2Fpure-ftpd-extauth-ldap/lists"}