Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: SADMS probleem met samba versie  (gelezen 1943 keer)

pierrot-san

  • Gast
SADMS probleem met samba versie
« Gepost op: 2009/02/24, 16:11:01 »
ik heb iederekeer het probleem dat mijn versie te laag is van mijn samba volgens sadms maar ik kan geen updateÅ› voor vinden meer

-------------------------------------------------------------------------------
S A D M S  2.0.12
Samba as Active Directory Member Server
bbou@ac-toulouse.fr
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
install
-------------------------------------------------------------------------------
[BEGIN]
[1]
+fix bugs/incompatibilities
disable avahi-daemon automatic startup
disable fam automatic startup
[2]
+customize krb5.conf
install new krb5.conf to /etc
[3]
+get current samba version for smb.conf syntax
samba minor version is 2:3.2.3-1ubuntu3.5
+samba config switches
use wins server
include sample shares
+customize smb.conf
install new smb.conf to /etc/samba
+customize user.map
install new user.map to /etc/samba
+creating sample data folder in /data shared as data
[4]
+ping kdc windows-2003-t2
ok
[5]
+sync clocks with kdc
local time was: 2009-02-24 15:46.50
synchronizing with windows-2003-t2
net time is now:2009-02-24 15:46.50
local time is now:2009-02-24 15:46.50
[6]
+get Kerberos ticket-granting ticket for principal test@SCHOOL.LOCAL
got ticket-granting ticket for principal krbtgt/SCHOOL.LOCAL@SCHOOL.LOCAL
[7]
+get current samba version for join domain syntax
samba minor version is 2:3.2.3-1ubuntu3.5
+join domain to Computers
join failed and returned 255
[7>] with error
log extract
vvvvv
Feb 24 15:46:49 ubuntu sadms: sadms start
Feb 24 15:46:51 ubuntu sadms: sadms finish error 7 join domain
^^^^^
[END]

./config-smbconf.sh: line 54: 2:3.2.3-1ubuntu3.5: syntax error in expression (error token is ":3.2.3-1ubuntu3.5")
./join-domain.sh: line 60: 2:3.2.3-1ubuntu3.5: syntax error in expression (error token is ":3.2.3-1ubuntu3.5")
[ERROR]
returned error code 7
command line was <./_install.sh   'SCHOOL.LOCAL' 'school.local' 'windows-2003-t2' 'school' 'ubuntu' 'Computers' '*****' '*****' 'Domain Users' '192.168.5.0/255.255.255.0' '192.168.5.5'>


hoe los ik dit op ????

Offline ruujan

  • Lid
  • Steunpunt: Nee
Re: SADMS probleem met samba versie
« Reactie #1 Gepost op: 2009/02/24, 17:13:59 »
Ik heb het idee dat het programma zich gewoon verslikt in het versienummer. Je zou eens kunnen kijken wat er precies in die twee genoemde scripts staat.

pierrot-san

  • Gast
Re: SADMS probleem met samba versie
« Reactie #2 Gepost op: 2009/02/25, 08:29:13 »
de config-smbconf.sh
#!/bin/bash
# bbou@ac-toulouse.fr
# 2007-08-19 10:00:11
# conf/config-smbconf.sh

### P A R A M S

MYNOSHARES=
if [ "$1" = "-noshares" ]; then
   MYNOSHARES="$1"
   shift
fi
MYREALM="$1"
MYDOMAIN="$2"
MYSERVER="$3"
MYADMIN="$4"
MYUSERS="$5"
MYHOSTALLOW="$6"
MYWINSSERVER="$7"

MYSEP='/'
MYUSEDEFAULTDOMAIN='yes'

### I N C L U D E S
. ./_include.sh

### M O D W H E T H E R   T O I E D   F I L E S ...
smbconffile=smb.conf
usermapconffile=user.map
datafolder=/data

### ... W I T H   A C C E S S
INST_UID=root
INST_GID=root
INST_MOD=644

### S T A R T

# D E T E R M I N E   S A M B A   V E R S I O N   F O R   S M B . C O N F   S Y N T A X
echo "+get current samba version for smb.conf syntax"
sambapkg="${SAMBAPKG}"
sambaversion=`${PACKAGEVERSION} ${sambapkg}`
sambamajorversion=`echo "${sambaversion}" | sed 's/^\([0-9]\).*$/\1/g'`
sambaminorversion=`echo "${sambaversion}" | sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*$/\1/g'`
echo "samba minor version is ${sambaminorversion}"

echo "+samba config switches"

# D E T E R M I N E   W H E T H E R   T O   U S E   I D M A P - R I D
useidmaprid=';'
useidmaprid2=';'
#if [ -d "${SAMBALIBDIR}" -a -e ${SAMBALIBDIR}/idmap/rid.so ];then
if ${PACKAGEHASFILE} ${RIDPACKAGE} 'rid.so';then
   if (( $((sambaminorversion)) < 25 )); then
      useidmaprid=' '
      useidmaprid2=';'
      echo "map id from rids using old syntax"
   else
      useidmaprid=';'
      useidmaprid2=' '
      echo "map id from rids using new syntax"
   fi
fi

# D E T E R M I N E   W H E T H E R   T O   W I N S   I S   E N A B L E D
usewins=';'
if [ "${MYWINSSERVER}" != "" ];then
   usewins=" "
   echo "use wins server"
fi

# D E T E R M I N E   W H E T H E R   T O   U S E   S H A R E S
conffiles="_smb.conf"
if [ -z "${MYNOSHARES}" ];then
   echo "include sample shares"
   conffiles="${conffiles} _shares.conf"
fi

# C U S T O M I Z E   S M B . C O N F
echo "+customize ${smbconffile}"
awkp='{
      gsub("%REALM%","'${MYREALM}'");
   gsub("%DOMAIN%","'${MYDOMAIN}'");
   gsub("%SERVER%","'${MYSERVER}'");
   gsub("%ADMIN%","'"${MYADMIN}"'");
   gsub("%USERS%","'"${MYUSERS}"'");
   gsub("%HOSTALLOW%","'"${MYHOSTALLOW}"'");
   gsub("%WINSSERVER%","'"${MYWINSSERVER}"'");
   gsub("%SEP%","'"${MYSEP}"'");
   gsub("%USEDEFAULTDOMAIN%","'"${MYUSEDEFAULTDOMAIN}"'");
   gsub("%USEWINS%","'"${usewins}"'");
   gsub("%USEIDMAPRID%","'"${useidmaprid}"'");
   gsub("%USEIDMAPRID2%","'"${useidmaprid2}"'");
   print}'
cat ${conffiles} | awk "$awkp" - > ${TMPDIR}/${smbconffile}
#cat ${TMPDIR}/${smbconffile} | grep -v "^#" | grep -v "^;" | grep -v "^$"

echo "install new ${smbconffile} to ${SAMBADIR}"
${INSTALL} -o ${INST_UID} -g ${INST_GID} -m ${INST_MOD} ${TMPDIR}/${smbconffile} ${SAMBADIR} > /dev/null

# C U S T O M I Z E   U S E R M A P
echo "+customize ${usermapconffile}"
awkp='{
   gsub("%DOMAIN%","'${MYDOMAIN}'");
   gsub("%ADMIN%","'"${MYADMIN}"'");
   gsub("%USERS%","'"${MYUSERS}"'");
   gsub("%SEP%","'"${MYSEP}"'");
   print}'
awk "${awkp}" _${usermapconffile} > ${TMPDIR}/${usermapconffile}
#cat ${TMPDIR}/${usermapconffile} | grep -v "^#" | grep -v "^;" | grep -v "^$"
echo "install new ${usermapconffile} to ${SAMBADIR}"
${INSTALL} -o ${INST_UID} -g ${INST_GID} -m ${INST_MOD} ${TMPDIR}/${usermapconffile} ${SAMBADIR} > /dev/null

# C L E A N U P
rm -f ${TMPDIR}/${smbconffile}
rm -f ${TMPDIR}/${usermapconffile}

# D A T A   S H A R E
if [ -z "${MYNOSHARES}" ];then
   echo "+creating sample data folder in ${datafolder} shared as data"
   [ -d ${datafolder} ] || mkdir -p ${datafolder}
   chown root.root ${datafolder}
   chmod 777 ${datafolder}
   touch ${datafolder}/._sadms_
   chmod ugo=r ${datafolder}/._sadms_
   touch /home/._sadms_
fi

# S T A T U S
[ -d /var/lib/sadms ] || mkdir -p /var/lib/sadms
echo '1' > /var/lib/sadms/smb

# T E S T
testparm -sv > /dev/null 2>&1
if [ "$?" != "0" ]; then
   echo "testparm signalled error" >&2
   testparm -sv >&2
fi
exit $?


de join-domain.sh
#!/bin/bash
# bbou@ac-toulouse.fr
# 2007-06-24 07:46:04 
# conf/join-domain.sh

### P A R A MS
MYVERBOSE=
redirection='> /dev/null'
if [ "$1" = "-v" ]; then
   MYVERBOSE="True"
   redirection=
   shift
fi
MYREALM="$1"
MYADMIN="$2"
MYADMINPWD="$3"
MYOU="$4"
# organizational unit to put computer in
#echo "realm=${MYREALM}"
#echo "ou=${MYOU}"
#echo "admin=${MYADMIN}"
#echo "admin password=${MYADMINPWD}"

### I N C L U D E S
. ./_include.sh

### S T A R T

function dokinit()
{
   if echo "${MYADMINPWD}" | ${KINIT} ${MYADMIN}@${MYREALM} > /dev/null; then
      echo "kerberos authentication of ${MYADMIN}@${MYREALM} succeeded"
      return 0
   else
      echo "kerberos authentication of ${MYADMIN}@${MYREALM} failed"
      return 1
   fi
}

function indomain()
{
   echo "+test domain membership"
   e="net ads testjoin 2>&1  ${redirection}"
   if eval ${e}; then
      echo "in domain"
      return 0
   else
      echo "not in domain"
      return 1
   fi
}

# different net ads join OU syntax as of 3.0.23
echo "+get current samba version for join domain syntax"
sambapkg="${SAMBAPKG}"
sambaversion=`${PACKAGEVERSION} ${sambapkg}`
sambamajorversion=`echo "${sambaversion}" | sed 's/^\([0-9]\).*$/\1/g'`
sambaminorversion=`echo "${sambaversion}" | sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*$/\1/g'`
echo "samba minor version is ${sambaminorversion}"
if (( $((sambaminorversion)) < 23 )); then
   ouswitch=
else
   ouswitch=createcomputer=
fi
#echo "ouswitch=${ouswitch}"
#echo net ads join ${ouswitch}"${MYOU}"

# J O I N   D O M A I N
#echo "+get administrator credentials"
#if ! dokinit; then
#   exit 1
#fi

if [ ! -z "${MYOU}" ]; then
   echo "+join domain to ${MYOU}"
   joinparam="${ouswitch}\"${MYOU}\""
else
   echo "+join domain"
   joinparam=
fi

e="net ads join ${joinparam} -U '${MYADMIN}%${MYADMINPWD}' ${redirection}"
#echo $e
if eval ${e} ; then
   echo "join succeeded"
else
   echo "join failed and returned $?"
   exit 2
fi

# T E S T
if indomain; then
   echo "join is ok"
else
   exit 3
fi
exit 0

zien jullie de fout

Offline ruujan

  • Lid
  • Steunpunt: Nee
Re: SADMS probleem met samba versie
« Reactie #3 Gepost op: 2009/02/25, 10:31:26 »
Er zijn eigenlijk twee problemen met de versiebepaling van Samba. De eerste is de dubbele punt in het ubuntu versie nummer. Die kun je oplossen door de regels waar de versie bepaald wordt in beide scripts te vervangen door het volgende:

sambamajorversion=`echo "$sambaversion" | sed 's/^[0-9]:\([0-9]\).*$/\1/g'`
sambaminorversion=`echo "${sambaversion}" | sed 's/^[0-9]:[0-9]*\.[0-9]*\.\([0-9]*\).*$/\1/g'`

Het tweede probleem is eigenlijk vervelender. Het programma gaat er van uit dat je samba 3.0 hebt. Je hebt echter 3.2 volgens mij. Ik heb hier nog een machine staan en daar draait 3.0.25 op. Op die machine zou sadms wel werken en ook de versiecheck doet het daar.
Ubuntu heeft echter in Intrepid 3.2.3 zitten. De majorversion is dus 3 en de minor is ook 3. Verderop in het script wordt getest of minor<23 want toen was er een andere syntax. Je veel nieuwere smaba zal door het bovenstaande behandeld worden als een versie ouder dan 3.0.23.

Ik ben bang dat het niet goed gaat.

pierrot-san

  • Gast
Re: SADMS probleem met samba versie
« Reactie #4 Gepost op: 2009/02/25, 11:11:11 »
Er zijn eigenlijk twee problemen met de versiebepaling van Samba. De eerste is de dubbele punt in het ubuntu versie nummer. Die kun je oplossen door de regels waar de versie bepaald wordt in beide scripts te vervangen door het volgende:

sambamajorversion=`echo "$sambaversion" | sed 's/^[0-9]:\([0-9]\).*$/\1/g'`
sambaminorversion=`echo "${sambaversion}" | sed 's/^[0-9]:[0-9]*\.[0-9]*\.\([0-9]*\).*$/\1/g'`

Het tweede probleem is eigenlijk vervelender. Het programma gaat er van uit dat je samba 3.0 hebt. Je hebt echter 3.2 volgens mij. Ik heb hier nog een machine staan en daar draait 3.0.25 op. Op die machine zou sadms wel werken en ook de versiecheck doet het daar.
Ubuntu heeft echter in Intrepid 3.2.3 zitten. De majorversion is dus 3 en de minor is ook 3. Verderop in het script wordt getest of minor<23 want toen was er een andere syntax. Je veel nieuwere smaba zal door het bovenstaande behandeld worden als een versie ouder dan 3.0.23.

Ik ben bang dat het niet goed gaat.

ik moet dit inderdaad veranderen
sambamajorversion=`echo "$sambaversion" | sed 's/^[0-9]:\([0-9]\).*$/\1/g'`
sambaminorversion=`echo "${sambaversion}" | sed 's/^[0-9]:[0-9]*\.[0-9]*\.\([0-9]*\).*$/\1/g'`

plus
if (( $((sambaminorversion)) < 23 )); then
naar
if (( $((sambaminorversion)) < 2 )); then

dan loopt alles in 1 keer door