[Samba] samba member logon.. question.

Andrey Repin anrdaemon at yandex.ru
Thu Apr 9 10:09:39 MDT 2015


Greetings, Rowland Penny!

>>> You are using python, which to me is a very big snake, so I bash it :-D
>>> I just use these two functions in a bash script:
>>> # Finds the next useable user uidNumber or group gidNumber
>>> # Input : $1
>>> # $1 : msSFU30MaxUidNumber or msSFU30MaxGidNumber
>>> # Output : the first free uidNumber or gidNumber
>>> _findnext () {
>>>     ATTR="$1"
>>>     if [ -z "${ATTR}" ]; then
>>>         error "No Attribute supplied"
>>>         error "Cannot continue... Exiting."
>>>         exit 1
>>>     fi
>>>     _NEXTID=$(ldbsearch -H ${LDBDB} -b
>>> "CN=${domainNETBios},CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,${domainDN}"
>>> -s sub '(objectClass=msSFU30DomainInfo)' ${ATTR} | grep "${ATTR}: " |
>>> awk '{print $NF}')
>>>     if [ -z "$_NEXTID" ] || [ "$_NEXTID" -lt "10000" ]; then
>>>         _NEXTID="10000"
>>>     fi
>>> }
>>> # UPDATE msSFU30MaxUidNumber/msSFU30MaxGidNumber
>>> # Input : $1 $2
>>> # $1: what to update (msSFU30MaxUidNumber or msSFU30MaxGidNumber)
>>> # $2: Next Number
>>> #
>>> # Output : Nothing
>>> _updatemax () {
>>>     ATTR="$1"
>>>     IDNUM="$2"
>>>     if [ -z "${ATTR}" ] || [ -z "${IDNUM}" ]; then
>>>         error "Incomplete data supplied."
>>>         error "Cannot continue... Exiting."
>>>         exit 1
>>>     fi
>>>     echo "Updating ${ATTR}"
>>>     IDLDIF="dn:
>>> CN=${domainNETBios},CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,${domainDN}
>>> changetype: modify
>>> replace: ${ATTR}
>>> ${ATTR}: ${IDNUM}"
>>>     echo "${IDLDIF}" | ldbmodify -H ${LDBDB}
>>>     if [ $? != 0 ]; then
>>>         error "Error updating ${ATTR} in AD."
>>>         echo "${LDIF}" > /tmp/update.ldif
>>>         exit 1 # exits here if error
>>>     fi
>>>     unset IDLDIF
>>>     echo "Successfully updated ${ATTR} in AD"
>>> }
>> That will only work on a domain controller.

> Well yes it will only work on a DC because that is where the AD records 
> are stored, but it can be run from another Linux machine.

>> I don't want to touch it at all,
>> if I don't need to blow it apart.

> Well, seeing as it is only doing what ADUC does, I do not see it blowing 
> up your AD DC.

>> Not to mention, it will not add "objectClass: posixAccount" to the user,

> How many times do I have to say this:

> DO NOT ADD POSIX OBJECTCLASSES TO AD, THEY ARE NOT REQUIRED. ADUC WILL 
> NEVER ADD THEM.

They are not required for AD, but they are required for other tools, that work
off AD LDAP.
Don't scream like that, you may startle someone.

>> causing all sort of grief in a long run.
> WHY ??

Because my auth tools, for instance, expect posixAccount class and check for
it before processing further with authentication.


-- 
With best regards,
Andrey Repin
Thursday, April 9, 2015 19:06:39

Sorry for my terrible english...



More information about the samba mailing list