ALT Linux users (in English only)
 help / color / mirror / Atom feed
* [Comm-en] PAM with ALT Linux
@ 2007-11-09 13:56 Daniel Rocher
  2007-11-09 17:23 ` Dmitry V. Levin
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Rocher @ 2007-11-09 13:56 UTC (permalink / raw)
  To: community-en


Hi,

I'm a developer and I have a problem with ALT Linux and PAM 
(authentification).

My program use PAM. this is PAM configuration file:

auth            required        pam_unix.so nullok
auth            required        pam_listfile.so 
file=/etc/qtsmbstatusd/qtsmbstatusd.users onerr=fail sense=allow item=user
account         required        pam_unix.so
session         required        pam_unix.so
password        required        pam_unix.so

It work very well with: Ubuntu, Mandriva, Fedora Core 6, Open Suse 10.2 ...

And I don't understand why not with Alt Linux (installed with 
lite-cd-20071106.iso) ?

Have you an idee ?

Thanks.


-- 

____________________________________________

   Daniel Rocher
   @ mail :  daniel.rocher@adella.org
   Jabber :  daniel.rocher@jabber.org
   web :     http://rocher.daniel.free.fr
   GPG ID :  0x19E0980E
____________________________________________



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm-en] PAM with ALT Linux
  2007-11-09 13:56 [Comm-en] PAM with ALT Linux Daniel Rocher
@ 2007-11-09 17:23 ` Dmitry V. Levin
  2007-11-09 19:07   ` Alexander Bokovoy
  2007-11-09 19:58   ` Daniel Rocher
  0 siblings, 2 replies; 8+ messages in thread
From: Dmitry V. Levin @ 2007-11-09 17:23 UTC (permalink / raw)
  To: daniel.rocher, ALT Linux users (in English only); +Cc: Motsyo Gennadi aka Drool

[-- Attachment #1: Type: text/plain, Size: 945 bytes --]

Hi,

On Fri, Nov 09, 2007 at 02:56:02PM +0100, Daniel Rocher wrote:
> I'm a developer and I have a problem with ALT Linux and PAM 
> (authentification).
> 
> My program use PAM. this is PAM configuration file:
> 
> auth            required        pam_unix.so nullok
> auth            required        pam_listfile.so 
> file=/etc/qtsmbstatusd/qtsmbstatusd.users onerr=fail sense=allow item=user
> account         required        pam_unix.so
> session         required        pam_unix.so
> password        required        pam_unix.so
> 
> It work very well with: Ubuntu, Mandriva, Fedora Core 6, Open Suse 10.2 ...
> 
> And I don't understand why not with Alt Linux (installed with 
> lite-cd-20071106.iso) ?
> 
> Have you an idee ?

Could you provide more details how it doesn't work, please?
Where it fails, how it fails, credentials of process which fails,
log message (in /var/log/auth/all) if any, etc.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm-en] PAM with ALT Linux
  2007-11-09 17:23 ` Dmitry V. Levin
@ 2007-11-09 19:07   ` Alexander Bokovoy
  2007-11-09 20:21     ` Daniel Rocher
  2007-11-09 19:58   ` Daniel Rocher
  1 sibling, 1 reply; 8+ messages in thread
From: Alexander Bokovoy @ 2007-11-09 19:07 UTC (permalink / raw)
  To: ALT Linux users (in English only)

Dmitry V. Levin пишет:
> Hi,
> 
> On Fri, Nov 09, 2007 at 02:56:02PM +0100, Daniel Rocher wrote:
>> I'm a developer and I have a problem with ALT Linux and PAM 
>> (authentification).
>>
>> My program use PAM. this is PAM configuration file:
>>
>> auth            required        pam_unix.so nullok
>> auth            required        pam_listfile.so 
>> file=/etc/qtsmbstatusd/qtsmbstatusd.users onerr=fail sense=allow item=user
>> account         required        pam_unix.so
>> session         required        pam_unix.so
>> password        required        pam_unix.so
>>
>> It work very well with: Ubuntu, Mandriva, Fedora Core 6, Open Suse 10.2 ...
>>
>> And I don't understand why not with Alt Linux (installed with 
>> lite-cd-20071106.iso) ?
>>
>> Have you an idee ?
> 
> Could you provide more details how it doesn't work, please?
> Where it fails, how it fails, credentials of process which fails,
> log message (in /var/log/auth/all) if any, etc.
Shouldn't it be related to TCB? This PAM config completely ignores the
fact that auth info in default ALT Linux installation is done through
TCB, therefore pam_tcb should be used instead of pam_unix. Below is our
system-auth-local which is included by default by other services:

#%PAM-1.0
auth     required       pam_tcb.so shadow fork prefix=$2a$ count=8 nullok
account  required       pam_tcb.so shadow fork
password required       pam_passwdqc.so min=disabled,24,12,8,7 max=40 
passphrase=3 match=4 similar=deny random=42 enforce=users retry=3
password required       pam_tcb.so use_authtok shadow fork prefix=$2a$ 
count=8 nullok write_to=tcb
session  required       pam_tcb.so
session  required       pam_mktemp.so
session  required       pam_limits.so

Daniel, you'd probably need to supply an ALTLinux-customized PAM config 
for your application made along these lines. Better, use the following 
(not tested):

#%PAM-1.0
auth     include        system-auth
auth     required       pam_listfile.so 
file=/etc/qtsmbstatusd/qtsmbstatusd.users onerr=fail sense=allow item=user
account  include        system-auth
password include        system-auth
session  include        system-auth

It relies on the fact that we have system-wide 'system-auth' PAM config 
which does common magic (like system-auth-local above).
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm-en] PAM with ALT Linux
  2007-11-09 17:23 ` Dmitry V. Levin
  2007-11-09 19:07   ` Alexander Bokovoy
@ 2007-11-09 19:58   ` Daniel Rocher
  1 sibling, 0 replies; 8+ messages in thread
From: Daniel Rocher @ 2007-11-09 19:58 UTC (permalink / raw)
  To: Dmitry V. Levin, ALT Linux users (in English only)
  Cc: Motsyo Gennadi aka Drool


[-- Attachment #1.1: Type: text/plain, Size: 981 bytes --]

Le vendredi 9 novembre 2007, Dmitry V. Levin a écrit :

>
> Could you provide more details how it doesn't work, please?
> Where it fails, how it fails, credentials of process which fails,
> log message (in /var/log/auth/all) if any, etc.

QtSmbstatus was designed as a client/server. I use PAM to check 
login/password.

I Use this code since 2004: pam.cpp and pam.h (attached).
When I want to check a login/password, my prog return (only in Alt linux):

User could not be authenticated: Authentication service cannot retrieve 
authentication info

Yet the login and password are correct.

attached:
/etc/pam.d/qtsmbstatusd
/etc/qtsmbstatusd/qtsmbstatusd.users
/var/log/auth/all

greetings

-- 

____________________________________________

   Daniel Rocher
   @ mail :  daniel.rocher@adella.org
   Jabber :  daniel.rocher@jabber.org
   web :     http://rocher.daniel.free.fr
   GPG ID :  0x19E0980E
____________________________________________

[-- Attachment #1.2: pam.cpp --]
[-- Type: text/x-c++src, Size: 2852 bytes --]

#include "pam.h"

// most of this code I got from Rene Mayrhofer (rmayr@debian.org)
  
/* Global variables for PAM authentication. */
static char *pamUsername, *pamPassword;

/* This is the PAM conversation function, it uses the global variables
 pamUsername and pamPassword, they have to be initialized before using this
 function.
 It simply feeds the password to the PAM library in response to a
 PAM_PROMPT_ECHO_OFF message */
static int pamConversationFunction(int num_msg, const struct pam_message **msg,
				   struct pam_response **resp, void *appdata_ptr) {
    struct pam_response *r;
    int count;

    // alloc the response
    r = (struct pam_response*) malloc(sizeof(struct pam_response) * num_msg);
    if (r == NULL)
	return PAM_CONV_ERR;

    for (count=0; count<num_msg; count++) {
	switch ((*msg)[count].msg_style) {
	case PAM_PROMPT_ECHO_ON:
	    r[count].resp = (char*) malloc(PAM_MAX_RESP_SIZE);
	    strncpy(r->resp, pamUsername, PAM_MAX_RESP_SIZE);
	    break;

	case PAM_PROMPT_ECHO_OFF:
	    r[count].resp = (char*) malloc(PAM_MAX_RESP_SIZE);
	    strncpy(r[count].resp, pamPassword, PAM_MAX_RESP_SIZE);
	    r[count].resp_retcode = PAM_SUCCESS;
	    break;
	default:
	    free(r);
	    return PAM_CONV_ERR;
	}
    }
    *resp = r;

    return PAM_SUCCESS;
}

/* pamUsername and pamPassword must be set before calling this method.
 Returns 0 when not successful, 1 when successful; */
int checkUserPass_real() {
    struct pam_conv pam_conversation;
    pam_handle_t *pam_h;
    int pamretval, ret=0;

    pam_conversation.conv = pamConversationFunction;
    pam_conversation.appdata_ptr = NULL;
    pamretval = pam_start(PAM_SERVICE_NAME, pamUsername, &pam_conversation, &pam_h);
    if (pamretval != PAM_SUCCESS) {
	printf("Error initializing PAM library: %s\n", pam_strerror(pam_h, pamretval));
	return 0;
    }

    pamretval = pam_authenticate(pam_h, PAM_SILENT);
    if (pamretval != PAM_SUCCESS) {
	printf("User could not be authenticated: %s\n", pam_strerror(pam_h, pamretval));
	ret = 0;
    }
    else {
	pamretval = pam_acct_mgmt(pam_h, 0);
	if (pamretval != PAM_SUCCESS) {
	    printf("User not healthy: %s\n", pam_strerror(pam_h, pamretval));
	    ret = 0;
	}
	else
	    ret = 1;
    }

    if (pam_end(pam_h, pamretval) != PAM_SUCCESS) {
	printf("Error releasing PAM library: %s\n", pam_strerror(pam_h, pamretval));
	return 0;
    }
    return ret;
}

/* authenticate vs pam. Notice: PAM_SERVICE_NAME: pam service has to exist and be set up correctly*/
int auth(char *username, char *passwd) {
    if (!username)
        return 0;
    if (!passwd)
        return 0;

    pamUsername = strdup(username);
    pamPassword = strdup(passwd);
    if (checkUserPass_real())
        return 1;
    else
        return 0;
}


[-- Attachment #1.3: pam.h --]
[-- Type: text/x-chdr, Size: 258 bytes --]

#include <pwd.h>
#include <grp.h>
#include <sys/types.h>
#include <string.h>
#include <stdio.h>
extern "C" {
  #include <security/pam_appl.h>
  #include <security/pam_misc.h>
}
#define PAM_SERVICE_NAME "qtsmbstatusd"

int auth(char *username,char* passwd);


[-- Attachment #1.4: qtsmbstatusd --]
[-- Type: text/plain, Size: 293 bytes --]

#
# The PAM configuration file for the qtsmbstatusd daemon
#

auth 		required	pam_unix.so nullok
auth		required	pam_listfile.so file=/etc/qtsmbstatusd/qtsmbstatusd.users onerr=fail sense=allow item=user
account		required	pam_unix.so
session		required	pam_unix.so
password	required	pam_unix.so

[-- Attachment #1.5: qtsmbstatusd.users --]
[-- Type: text/plain, Size: 5 bytes --]

root

[-- Attachment #1.6: all --]
[-- Type: text/plain, Size: 342 bytes --]


Nov 9 20:32:12 localhost qtsmbstatusd: pam_unix(qtsmbstatusd:auth): Credentials for user root unknown
Nov 9 20:32:13 localhost qtsmbstatusd: pam_unix(qtsmbstatusd:auth): Authentication failed for UNKNOWN USER from (uid=0)
Nov 9 20:35:49 localhost qtsmbstatusd: pam_unix(qtsmbstatusd:auth): Authentication failed for UNKNOWN USER from (uid=0)

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm-en] PAM with ALT Linux
  2007-11-09 19:07   ` Alexander Bokovoy
@ 2007-11-09 20:21     ` Daniel Rocher
  2007-11-09 21:04       ` Michael Shigorin
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Rocher @ 2007-11-09 20:21 UTC (permalink / raw)
  To: community-en; +Cc: Motsyo Gennadi aka Drool

[-- Attachment #1: Type: text/plain, Size: 1250 bytes --]

Le vendredi 9 novembre 2007, Alexander Bokovoy a écrit :
>Daniel, you'd probably need to supply an ALTLinux-customized PAM config 
>for your application made along these lines. Better, use the following 
>(not tested):
> #%PAM-1.0
> auth     include        system-auth
> auth     required       pam_listfile.so
> file=/etc/qtsmbstatusd/qtsmbstatusd.users onerr=fail sense=allow item=user
> account  include        system-auth
> password include        system-auth
> session  include        system-auth

It's work perfectly !

I have changed /etc/pam.d/qtsmbstatusd by your config and I have tested:
- a bad login /bad password
- a good login /bad password
- a good login /good password
- a good login/null password

all ok  :-)


>It relies on the fact that we have system-wide 'system-auth' PAM config 
>which does common magic (like system-auth-local above).

I understand. Perhaps directly in ALT Linux rpm packages (by  Drool).

Thank you very much.

-- 

____________________________________________

   Daniel Rocher
   @ mail :  daniel.rocher@adella.org
   Jabber :  daniel.rocher@jabber.org
   web :     http://rocher.daniel.free.fr
   GPG ID :  0x19E0980E
____________________________________________

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm-en] PAM with ALT Linux
  2007-11-09 20:21     ` Daniel Rocher
@ 2007-11-09 21:04       ` Michael Shigorin
  2007-11-09 21:30         ` [Comm-en] Help Unsubbing Rachel Ramey
  2007-11-09 22:01         ` [Comm-en] PAM with ALT Linux Daniel Rocher
  0 siblings, 2 replies; 8+ messages in thread
From: Michael Shigorin @ 2007-11-09 21:04 UTC (permalink / raw)
  To: community-en

On Fri, Nov 09, 2007 at 09:21:30PM +0100, Daniel Rocher wrote:
> >Daniel, you'd probably need to supply an ALTLinux-customized
> >PAM config for your application made along these lines.

BTW it's relevant at least for Owl GNU/*/Linux by default too.

> >Better, use the following (not tested):
> > auth include system-auth
> It's work perfectly !

[snip]

> >It relies on the fact that we have system-wide 'system-auth'
> >PAM config which does common magic (like system-auth-local
> >above).
> I understand. Perhaps directly in ALT Linux rpm packages

Or you might want to follow best practices (that is, reusing
configuration in this case) and include system-auth on other
distros instead of relying on particular scheme in your snippet:
there are other auth modules (someone would use e.g. pam_ldap).

PS: I've checked nearby VPSes with Mandriva 2007.1, FC6,
CentOS 4.4 -- all of them do provide /etc/pam.d/system-auth.
Only Debian Etch would diverge calling that "common-auth".

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Comm-en] Help Unsubbing
  2007-11-09 21:04       ` Michael Shigorin
@ 2007-11-09 21:30         ` Rachel Ramey
  2007-11-09 22:01         ` [Comm-en] PAM with ALT Linux Daniel Rocher
  1 sibling, 0 replies; 8+ messages in thread
From: Rachel Ramey @ 2007-11-09 21:30 UTC (permalink / raw)
  To: ALT Linux users (in English only)

Help!  I can't figure out how to unsubscribe, and Linux is not a current 
"project" in our household at the moment.

Be blessed!
~Rachel R. <><
http://www.titus2homemaker.com
http://blog.titus2homemaker.com
"Those who would give up essential Liberty, to purchase a little temporary 
Safety, deserve neither Liberty nor Safety." -Benjamin Franklin 



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm-en] PAM with ALT Linux
  2007-11-09 21:04       ` Michael Shigorin
  2007-11-09 21:30         ` [Comm-en] Help Unsubbing Rachel Ramey
@ 2007-11-09 22:01         ` Daniel Rocher
  1 sibling, 0 replies; 8+ messages in thread
From: Daniel Rocher @ 2007-11-09 22:01 UTC (permalink / raw)
  To: community-en

[-- Attachment #1: Type: text/plain, Size: 828 bytes --]

Le vendredi 9 novembre 2007, Michael Shigorin a écrit :

> Or you might want to follow best practices (that is, reusing
> configuration in this case) and include system-auth on other
> distros instead of relying on particular scheme in your snippet:
> there are other auth modules (someone would use e.g. pam_ldap).
>
> PS: I've checked nearby VPSes with Mandriva 2007.1, FC6,
> CentOS 4.4 -- all of them do provide /etc/pam.d/system-auth.
> Only Debian Etch would diverge calling that "common-auth".

Yes, I understand. I'll change that.

Thanks

-- 

____________________________________________

   Daniel Rocher
   @ mail :  daniel.rocher@adella.org
   Jabber :  daniel.rocher@jabber.org
   web :     http://rocher.daniel.free.fr
   GPG ID :  0x19E0980E
____________________________________________

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-11-09 22:01 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-09 13:56 [Comm-en] PAM with ALT Linux Daniel Rocher
2007-11-09 17:23 ` Dmitry V. Levin
2007-11-09 19:07   ` Alexander Bokovoy
2007-11-09 20:21     ` Daniel Rocher
2007-11-09 21:04       ` Michael Shigorin
2007-11-09 21:30         ` [Comm-en] Help Unsubbing Rachel Ramey
2007-11-09 22:01         ` [Comm-en] PAM with ALT Linux Daniel Rocher
2007-11-09 19:58   ` Daniel Rocher

ALT Linux users (in English only)

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community-en/0 community-en/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community-en community-en/ http://lore.altlinux.org/community-en \
		community-en@lists.altlinux.org community-en@lists.altlinux.ru community-en@lists.altlinux.com
	public-inbox-index community-en

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community-en


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git