Add original scripts
This commit is contained in:
66
idmap.sh
Executable file
66
idmap.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/sh
|
||||
|
||||
IDMAP_MAX=4
|
||||
NET=/usr/local/samba/bin/net
|
||||
IDMAP_TDB=/usr/local/samba/var/locks/winbindd_idmap.tdb
|
||||
|
||||
volume_test=`/sbin/getcfg Public path -f /etc/smb.conf | cut -d '/' -f 3`
|
||||
[ "x${volume_test}" = "x" ] || volume=${volume_test}
|
||||
LOCATION=/share/${volume}/.idmap
|
||||
if [ ! -d ${LOCATION} ]; then
|
||||
/bin/mkdir ${LOCATION}
|
||||
fi
|
||||
PREFIX1=$LOCATION/.idmap.dump
|
||||
PREFIX2=$LOCATION/.idmap.leave
|
||||
|
||||
check_ADS()
|
||||
{
|
||||
/bin/grep "security = ADS" /etc/config/smb.conf 2>/dev/null 1>/dev/null
|
||||
if [ $? != 0 ]; then
|
||||
echo "ADS off"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
leave_dump)
|
||||
check_ADS
|
||||
_latest_no=`/sbin/getcfg Samba "idmap leave" -d 0`
|
||||
if [ "x$_latest_no" = "x$IDMAP_MAX" ]; then
|
||||
_latest_no=1
|
||||
else
|
||||
_latest_no=`/usr/bin/expr $_latest_no + 1`
|
||||
fi
|
||||
/sbin/setcfg Samba "idmap leave" $_latest_no
|
||||
$NET idmap dump $IDMAP_TDB > $PREFIX2$_latest_no
|
||||
;;
|
||||
dump)
|
||||
check_ADS
|
||||
_latest_no=`/sbin/getcfg Samba "idmap dump" -d 0`
|
||||
if [ "x$_latest_no" = "x$IDMAP_MAX" ]; then
|
||||
_latest_no=1
|
||||
else
|
||||
_latest_no=`/usr/bin/expr $_latest_no + 1`
|
||||
fi
|
||||
/sbin/setcfg Samba "idmap dump" $_latest_no
|
||||
$NET idmap dump $IDMAP_TDB > $PREFIX1$_latest_no
|
||||
;;
|
||||
restore)
|
||||
if [ "x$2" = "x" ]; then
|
||||
echo $0 restore [idmap_file]
|
||||
exit 1
|
||||
fi
|
||||
$NET idmap restore < $2
|
||||
/bin/rm -f /usr/local/samba/var/locks/gencache.tdb 2>/dev/null 1>/dev/null
|
||||
/etc/init.d/winbind restart 2>/dev/null 1>/dev/null
|
||||
;;
|
||||
list)
|
||||
echo PATH = [$LOCATION]
|
||||
/bin/ls -al $LOCATION
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {leave_dump|dump|restore|list}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user