{"id":15389142,"url":"https://github.com/splitbrain/pam-require","last_synced_at":"2026-02-02T10:39:24.354Z","repository":{"id":941577,"uuid":"717308","full_name":"splitbrain/pam-require","owner":"splitbrain","description":"A simple PAM account module to require a special user or group to access a service","archived":false,"fork":false,"pushed_at":"2010-06-12T13:28:46.000Z","size":152,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-16T08:57:11.236Z","etag":null,"topics":["authorization","c","pam","pam-module"],"latest_commit_sha":null,"homepage":"http://www.splitbrain.org/projects/pam_require","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/splitbrain.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-06-12T13:28:35.000Z","updated_at":"2022-06-22T08:40:24.000Z","dependencies_parsed_at":"2022-08-16T11:35:06.040Z","dependency_job_id":null,"html_url":"https://github.com/splitbrain/pam-require","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/splitbrain/pam-require","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splitbrain%2Fpam-require","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splitbrain%2Fpam-require/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splitbrain%2Fpam-require/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splitbrain%2Fpam-require/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/splitbrain","download_url":"https://codeload.github.com/splitbrain/pam-require/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/splitbrain%2Fpam-require/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29010517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T10:37:29.253Z","status":"ssl_error","status_checked_at":"2026-02-02T10:37:28.644Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["authorization","c","pam","pam-module"],"created_at":"2024-10-01T14:59:32.425Z","updated_at":"2026-02-02T10:39:24.338Z","avatar_url":"https://github.com/splitbrain.png","language":"C","readme":"====== pam_require ======\n\nThis is a simple PAM account module. It is meant to be used together\nwith other modules! It allows you to require a special user or group\nto access a service.\n\nIt's available at http://www.splitbrain.org/go/pam_require\n\n===== Installation =====\n\nYou need the pam-devel files to compile it. In Debian do:\n  \n  # apt-get install libpam0g-dev\n\nCompiling and installing __should__ be straight forward:\n\n  $\u003e ./configure\n  $\u003e make    \n  $\u003e su\n  #\u003e make install \n\n  \n===== Usage =====\n\nThe module is an account module only! It has no usage as auth,\npassword or session module! \n\n**Please Note:** The Syntax has changed from Version 0.1\n\nIt accepts usernames or groupnames as parameter. Groupnames have to\nbe given with a leading @. Just have a look at the examples below:\n\nThis requires the user to be in a group called \"dialin\":\n\n  account    required   pam_unix.so\n  account    required   pam_require.so @dialin\n\nThis only allows user \"joe\" to login:\n  \n  account    required   pam_unix.so\n  account    required   pam_require.so joe\n\nHere either \"joe\" or members of the \"dialin\" group may login:\n\n  account    required   pam_unix.so\n  account    required   pam_require.so joe @dialin\n\nSince version 0.3 you may let in everybody __except__ the named group\nor user. This example keeps out members of the lusers group:\n\n  account    required   pam_unix.so\n  account    required   pam_require.so !@lusers\n\nSince version 0.4 you can define users and groups with spaces, just use\ncolons instead of the spaces. You should always avoid using spaces in\nusernames and groups but sometimes it is necessary (most times some kind of\ninteraction with Microsoft products is involved). The example lets in \"Joe\nSchmoe\" and members of the \"Windows Users\" group.\n\n  account    required   pam_unix.so\n  account    required   pam_require.so Joe:Schmoe @Windows:Users\n\n===== Bugs / Known Issues =====\n\nBe careful with the negation (!). All parameters are logically OR'ed together\nso if one statement is true access is granted. A simple example to explain -\nImagine this line:\n\n  account    required   pam_unix.so\n  account    required   pam_required.so !@lusers !@schmocks\n\nThis would let in all users in group schmocks that are not in group lusers.\nTo keep out both groups use two lines like this:\n\n  account    required   pam_unix.so\n  account    required   pam_required.so !@lusers\n  account    required   pam_required.so !@schmocks\n\nThe module discards all standard parameter which are: debug, no_warn,\nuse_first_pass, try_first_pass, use_mapped_pass and expose_account. This means\ntwo things: First these parameter doesn't change anything in pam_require's\nbehavior and second you can't have users with these names.\n\n===== Thanks =====\n\nTo Jennifer Vesperman for her very helpful article \"Writing PAM Modules\"\nat http://linux.oreillynet.com/pub/a/linux/2002/05/02/pam_modules.html\n\nTo Jens Chr. Bachem \u003cj.bachem@travco.de\u003e for the negation patch.\n\nTo Svein Olav Bjerkeset \u003csvein.bjerkeset@vegvesen.no\u003e for some hints what to\nchange for compiling on Solaris.\n\nTo Scipio \u003cscipio@freemail.hu\u003e for pointing out some errors in my code.\n\nTo Jon Severinsson \u003cjon@severinsson.net\u003e for adding the missing\nprimary group membership test\n\nTo Alexander E. Patrakov \u003cpatrakov@ums.usu.ru\u003e for adding control files\nto build Debian package\n\n===== Feedback =====\n\nI'm always open to suggestions or hints that help me make my C better.\nI'm completely new to the whole autoconf/automake stuff so any tips on\nthis are greatly appreciated.\n\nJust contact me at \u003candi@splitbrain.org\u003e or visit pam_require in\nthe DokuWiki at http://www.splitbrain.org/dokuwiki/sw:pam_require\n\n===== License =====\n\n  pam_require - A simple PAM account module\n  Copyright (C) 2003-2004 Andreas Gohr \u003ca.gohr@web.de\u003e\n  \n  This program is free software; you can redistribute it and/or\n  modify it under the terms of the GNU General Public License\n  as published by the Free Software Foundation; either version 2\n  of the License, or (at your option) any later version.\n  \n  This program is distributed in the hope that it will be useful,\n  but WITHOUT ANY WARRANTY; without even the implied warranty of\n  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n  GNU General Public License for more details.\n  \n  You should have received a copy of the GNU General Public License\n  along with this program; if not, write to the Free Software\n  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsplitbrain%2Fpam-require","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsplitbrain%2Fpam-require","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsplitbrain%2Fpam-require/lists"}