[Samba] Authenticating with Active Directory

Jociel Andrade jcainfo at gmail.com
Tue Mar 13 15:05:08 GMT 2007

Hi all,

I need to authenticate Active Directory users in Solaris. I wrote a program
to do it using smbclient.a lib, but the method Valid_User is returning aways
the code 1 (Network Error). The program is in attachment.

When I use the following code, the user is sucessfully authenticated:
smbclient '\\\downloads' -W adteste -U dmadmin%Senha123

But, this command log in the machine. I need a program that returns TRUE for
valid username/password and FALSE, otherwise. Can somebody help me?

Thanks in advance,
-------------- next part --------------
#include "valid.h"
#include <stdarg.h>
#include <shadow.h>
#include <crypt.h>
#include <stdlib.h>
#include <sys/utsname.h>
#include <utmpx.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>

void catch_sigpipe(int sig_num)
  /* We were not able to read off of the domain authentication pipe. */
  fputs("Signal error while authenticating domain.\n", stdout);


int main(int argc, char **argv) {
  printf("%s:%s\n", argv[1], argv[2]); 
  void (*old_signal_handler)(int);

  old_signal_handler = signal(SIGPIPE, catch_sigpipe);
  //result = Valid_User(userName, userPassword, pdc, bdc, domain);
  int result = Valid_User(argv[1], argv[2], 
  signal(SIGPIPE, old_signal_handler);

  printf("Resut: %d.\n", result);

  switch (result)
    case 0:
      fputs("SMB Authentication Succeeded.\n", stdout);
    case 1:
      fputs("SMB Network Error.\n", stdout);
    case 2:
      fputs("SMB Protocol Error.\n", stdout);
    case 3:
      fputs("Logon Error.\n", stdout);
      fputs("Unknown Error.\n", stdout);
  return 0;

More information about the samba mailing list