BuildRID
Top  Previous  Next


Builds Samba RID from uidNumber or gidNumber

Formula: (xidNumber*Multiplier)+Base

BuildRID (xidNumber, Multiplier, Base)

xidNumber
uidNumber or gidNumber of object to create RID for  

Multiplier
Multiplier to multiply xidNumber with  

Base

Base to add to xidNumber multiplied with multiplier  

Example 1 - simple RID

MessageBox
 BuildRID (1004,2,1000)

Displays "3008"

Example 2 - create Samba 3 SID for three existing Linux accounts (in OU "People")

[Settings_Begin]
BatchSettings.Delimiter=TAB
BatchSettings.MarkerCol=5

// LDAP server, SSL must be enabled on port 636, a SSL certificate must be installed locally
SET LDServer=ldap.my-domain.com

SET LDAdminAccount=%LDDomainPath%/cn=ldapman
SET LDAdminPW=s0l-DaLsdM

SET LDDomainPath=dc=com/dc=my-domain
SET LDOU=People
SET LDOUPath=%LDDomainPath%/ou=%LDOU%
[Settings_End]

[Init_Batch_Begin]
Lin.DS.Logon %LDServer%, %LDAdminAccount%, %LDAdminPW%   
Data.Loop   
 // Find Samba domain object path (Only if not already intitalized)   
 If %LDSambaDomainPath%= Then   
  SET LDSambaDomainPath=LDPathFind (%LDDomainPath%, sambaDomain, sambaDomainName=*, Yes)   
 EndIf   
 // Get sambaSID (Only if not already intitalized)   
 If %sambaDomainSID%= Then   
  SET sambaDomainSID=LDValue (%LDSambaDomainPath%, sambaSID)   
 EndIf   
  // Get sambaAlgorithmicRidBase (Only if not already intitalized)   
 If %sambaAlgorithmicRidBase%= Then   
  SET sambaAlgorithmicRidBase=LDValue (%LDSambaDomainPath%, sambaAlgorithmicRidBase)   
 EndIf   
 // Get uidNumber for current account   
 SET uidNumber=LDValue (%LDOUPath%/uid=%col1%, uidNumber)   
 // Create SID   
 SET sambaSID=%sambaDomainSID%-BuildRID (%uidNumber%,2,%sambaAlgorithmicRidBase%)   
 // Write in second column   
 Data.Write 2,%sambaSID%   
Data.EndLoop   
[Init_Batch_End]

[Data_Begin]
acc1
acc2
acc3
[Data_End]

Result:

[Data_Begin]
acc1   S-1-5-21-3659913237-4153511623-2881038718-3026
acc2   S-1-5-21-3659913237-4153511623-2881038718-3028         
acc3   S-1-5-21-3659913237-4153511623-2881038718-3044         
[Data_End]