Difference between revisions of "Linking to Active Directory Home Directories using CentrifyDN"

From ubermix Wiki
Jump to: navigation, search
m
m
Line 24: Line 24:
 
     nano /usr/bin/adhome.pl
 
     nano /usr/bin/adhome.pl
 
''' 2a. Copy the Shell Script into adhome.pl '''
 
''' 2a. Copy the Shell Script into adhome.pl '''
   
+
 
   <nowiki> #!/bin/sh /usr/share/centrifydc/perl/run
+
   #!/bin/sh /usr/share/centrifydc/perl/run
 
   #This script uses ldap to fetch user homeDirectory from AD  
 
   #This script uses ldap to fetch user homeDirectory from AD  
   #and mount/umount by smbmount and smbumount</nowiki>
+
   #and mount/umount by smbmount and smbumount
   
+
       
   <nowiki>use strict;</nowiki>
+
   use strict;
 
+
   use File::Spec;
   <nowiki># use MIME::Base64;</nowiki>
+
     
   <nowiki>use File::Spec;</nowiki>
+
  my $zone_base = `cat /var/centrifydc/kset.zonename`; # changed va to var
 
+
       
 +
  my $cn = `adquery user -D ${ARGV[0]} | cut -d, -f1`;
 +
     
 +
  my @cn = split(/\n/,$cn);
 +
 
 +
   my $ldap = `/usr/share/centrifydc/bin/ldapsearch -Q -H "LDAP://" -b "$zone_base"  -LLL "(@cn)" homeDirectory |  grep homeDirectory | cut -d: -f2 | sed 's:\\\\:/:g' `;
 +
 
 +
  my @line = split(/\n/, $ldap);
 +
 
 +
  if (@line )
 +
  {
 +
      if(${ARGV[2]} eq "mount")
 +
      {
 
    
 
    
  <nowiki>my $zone_base = `cat /va/centrifydc/kset.zonename`;</nowiki>
+
      my $mount = `smbmount @line ${ARGV[1]} -o sec=krb5i`;
     
 
  <nowiki>my $cn = `adquery user -D ${ARGV[0]} | cut -d, -f1`;</nowiki>
 
 
    
 
    
   <nowiki>my @cn = split(/\n/,$cn);</nowiki>
+
      }
 +
   }
 
    
 
    
   <nowiki>my $ldap = `/usr/share/centrifydc/bin/ldapsearch -Q -H "LDAP://" -b "$zone_base"  -LLL "(@cn)" homeDirectory | grep homeDirectory | cut -d: -f2 | sed 's:\\\\:/:g' `;
+
   if(${ARGV[2]} eq "umount" )
 
+
  {
  <nowiki>my @line = split(/\n/, $ldap);</nowiki>
 
 
 
  <nowiki>if (@line )</nowiki>
 
  <nowiki>{</nowiki>
 
  <nowiki>  if(${ARGV[2]} eq "mount") {</nowiki>
 
 
    
 
    
  <nowiki>my $mount = `smbmount @line ${ARGV[1]} -o sec=krb5i`;</nowiki>
+
    my $mount = `smbumount ${ARGV[1]}`;
 
    
 
    
   <nowiki>  }</nowiki>
+
   }
  <nowiki>}</nowiki>
 
 
 
  <nowiki>if(${ARGV[2]} eq "umount" )
 
    {</nowiki>
 
  <nowiki>  my $mount = `smbumount ${ARGV[1]}`;</nowiki>
 
    }
 
  
 
''' -- WORK IN PROGRESS -- '''
 
''' -- WORK IN PROGRESS -- '''

Revision as of 23:16, 19 April 2012

See Article: http://community.centrify.com/t5/DirectControl-Express-for-UNIX/Automounting-home-directories-defined-in-AD/td-p/1044

* Disclaimer: I did not create (write) this script, or have I tested this well. Please change any errors or omissions in these instructions! *



1. Install SAMBA.

OPEN TERMINAL with Ctrl-T if it is not already open

   sudo -i
   apt-get update
  
   apt-get install samba

2. Create Script with adhome.pl based on article above and place in /usr/bin/adhome.pl

OPEN TERMINAL with Ctrl-T if it is not already open

   sudo -i
   nano /usr/bin/adhome.pl

2a. Copy the Shell Script into adhome.pl

  #!/bin/sh /usr/share/centrifydc/perl/run
  #This script uses ldap to fetch user homeDirectory from AD 
  #and mount/umount by smbmount and smbumount
       
  use strict;
  use File::Spec;
     
  my $zone_base = `cat /var/centrifydc/kset.zonename`; # changed va to var
        
  my $cn = `adquery user -D ${ARGV[0]} | cut -d, -f1`;
     
  my @cn = split(/\n/,$cn);
  
  my $ldap = `/usr/share/centrifydc/bin/ldapsearch -Q -H "LDAP://" -b "$zone_base"  -LLL "(@cn)" homeDirectory |  grep homeDirectory | cut -d: -f2 | sed 's:\\\\:/:g' `;
  
  my @line = split(/\n/, $ldap);
  
  if (@line )
  {
     if(${ARGV[2]} eq "mount") 
     {
  
      my $mount = `smbmount @line ${ARGV[1]} -o sec=krb5i`;
  
     }
  }
  
  if(${ARGV[2]} eq "umount" )
  {
  
   my $mount = `smbumount ${ARGV[1]}`;
  
  }

-- WORK IN PROGRESS --