https://github.com/devkral/rpam2
Ruby Pam integegration
https://github.com/devkral/rpam2
pam ruby ruby-gem
Last synced: 7 months ago
JSON representation
Ruby Pam integegration
- Host: GitHub
- URL: https://github.com/devkral/rpam2
- Owner: devkral
- License: mit
- Created: 2017-09-27T17:00:46.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-17T11:15:11.000Z (over 7 years ago)
- Last Synced: 2025-03-18T05:43:53.282Z (7 months ago)
- Topics: pam, ruby, ruby-gem
- Language: C
- Size: 33.2 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.rdoc
- License: LICENSE.txt
Awesome Lists containing this project
README
= rpam2
* http://rubyforge.org/projects/rpam2
== DESCRIPTION:
This extension provides a PAM (Pluggable Authentication Modules)
integration to ruby. It is inspired by rpam but provides more functionality
and is licensed under MIT.== EXAMPLE:
require 'rpam2'
if Rpam2.auth("servicename", "user", "password")
puts "Authentication successful"
else
puts "Authentication failed"
endputs Rpam2.listenv(nil, "user", "password") # uses default (rpam)
puts Rpam2.listenv("servicename", "user", "password")
puts Rpam2.listenv("servicename", "user", "password", true)
puts Rpam2.listenv("servicename", "user", "password", true, "RUSER", "RHOST")
puts Rpam2.listenv("servicename") # error== REQUIREMENTS:
* pam-dev (except test mode)
* ruby-dev== INSTALL:
gem install rpam2
or if it should not depend on pam (test mode):
ALLOW_NOPAM=true gem install rpam2
WARNING: Don't use rpam2 for anything except for tests in this mode. It isn't safe.
Or manually:
* gem build rpam2.gemspec
* gem install ./rpam2-4.0.0.gem== Usage:
require 'rpam2'
Rpam2.auth("servicename", "username", "password", ["RUSER", "RHOST"]) => (true/false)
Rpam2.account("servicename", "username") => (true/false)
Rpam2.getenv("servicename", "username", "password", "envvar", [opensession(true/false), ["RUSER", "RHOST"]]) => (string/nil)
Rpam2.listenv("servicename", "username", "password", [opensession(true/false), ["RUSER", "RHOST"]]) => (hash/nil)
== Testing:
For test purposes can Rpam2 be filled with fake data. For this mode pam is not neccessary but then you may should not access not specified services.
Only services in fake_data are emulated the rest is redirected to real or stub pam (if pam was not available).Rpam2.fake_data = { usernames: Set['alex', 'hugo', 'thomas'], servicenames: Set['service1', 'service2'], password: '123456', env: { email: 'me@example.com'} }