Skip to content
Snippets Groups Projects
debian.pp 3.06 KiB
Newer Older
Adam Lewenberg's avatar
Adam Lewenberg committed
#
# Sets up basic PAM configuration for Debian, separated out from the original
# kerberos configuration.

class base::pam::debian {
    package { 'libpam-krb5': ensure => present }

    case $::lsbdistcodename {
        'etch': {
            package { 'libpam-openafs-session': ensure => present }
            file {
                '/etc/pam.d/common-auth':
                    source  => 'puppet:///modules/base/pam/etc/pam.d/common-auth',
                    require => [ Package['libpam-openafs-session'],
                                 Package['libpam-krb5'] ];
                '/etc/pam.d/common-session':
                    source  => 'puppet:///modules/base/pam/etc/pam.d/common-session',
                    require => [ Package['libpam-openafs-session'],
                                 Package['libpam-krb5'] ];
            }
        }
        default: {
            package { 'libpam-afs-session': ensure => present }
            file {
                '/etc/pam.d/common-auth':
                    source  => 'puppet:///modules/base/pam/etc/pam.d/common-auth.lenny',
                    require => [ Package['libpam-afs-session'],
                                 Package['libpam-krb5'] ];
                '/etc/pam.d/common-session':
                    source  => 'puppet:///modules/base/pam/etc/pam.d/common-session.lenny',
                    require => [ Package['libpam-afs-session'],
                                 Package['libpam-krb5'] ];
            }
        }
    }

    file { '/etc/pam.d/common-account':
        source  => 'puppet:///modules/base/pam/etc/pam.d/common-account',
        require => [ Package['libpam-krb5'] ];
    }
}

# FIXME: move libpam-foreground and config (in pam.d/global/common-session)
# to the timeshare class, or something similar

class base::pam::debian::ldap inherits base::pam::debian {
    package {
        'libpam-ldap':                     ensure => 'present';
        'libnss-ldap':                     ensure => 'present';
        'libpam-openafs-kaserver':         ensure => 'absent';
    }

    # A lot of this stuff is taken from s_timeshare, which is where it was
    # originally implemented.
    file {
        '/etc/ldap.conf':
            source  => 'puppet:///modules/base/pam/etc/ldap.conf';
        '/etc/libnss-ldap.conf':
            source  => 'puppet:///modules/base/pam/etc/libnss-ldap.conf';
        '/etc/nsswitch.conf':
            source  => 'puppet:///modules/base/pam/etc/nsswitch.conf';
        '/etc/pam.d/common-password':
            source  => 'puppet:///modules/base/pam/etc/pam.d/global/common-password',
            require => [ Package['libpam-krb5'] ];
        '/etc/pam_ldap.conf':
            source  => 'puppet:///modules/base/pam/etc/pam_ldap.conf';
    }

    File['/etc/pam.d/common-account'] {
        source => 'puppet:///modules/base/pam/etc/pam.d/global/common-account'
    }

    File['/etc/pam.d/common-auth'] {
        source => 'puppet:///modules/base/pam/etc/pam.d/global/common-auth'
    }

    File['/etc/pam.d/common-session'] {
        source => 'puppet:///modules/base/pam/etc/pam.d/global/common-session'
    }

}