DC Tools
DC Tools
/bin/bash -x
#Juan https://j20003.es
HEIGHT=20
WIDTH=50
CHOICE_HEIGHT=10
BACKTITLE="Tools Domain"
TITLE="Domain Config, choose option"
MENU="\nChoose one of the following options:"
CHOICE=$(dialog --clear \
--backtitle "$BACKTITLE" \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${funcheck[@]}" \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)
clear
case $CHOICE in
1)
#####################Change password options of
Domain#################################
exec 3>&1
exec 3>&-
dc-tools
;;
2)
#######################List Group DC########################
group=$(samba-tool group list)
(dialog --title "Users list" \
--stdout \
--msgbox "$group" 0 0 )
dc-tools
;;
3)
######################Add New Group DC###############################
answer=$(dialog --title "Add New Group DC" \
--separate-widget $"\n" \
--form "" \
0 0 0 \
"Name:" 1 1 "$name" 1 10 20 0 \
3>&1 1>&2 2>&3 3>&-)
4)
########################Remove Group Domain##############################
rm -r groupdc
mkdir groupdc
cd groupdc
cp groupdc groupdc-b
delgpr=$(cat groupdc)
(dialog --title "These are the groups you can delete" \
--stdout \
--msgbox "$delgpr" 0 0 )
touch delgroupdc
chmod +x delgroupdc
######Segunda parte
sed -i "s/^/'/" groupdc-b
sed -i "s/$/'/" groupdc-b
sed '/./=' groupdc-b | sed '/./N; s/\n/) samba-tool group delete /' > groupdc-b01
sed '/./=' groupdc-b | sed '/./N; s/\n/ /' > groupdc-b1
sed 'a\;;' groupdc-b01 > groupdc-b02
#######################################################################
;;
5)
mkdir userdc
cd userdc
samba-tool group list > group
sed 's/[A-Z]/\L&/g' group > group1
sed 's/ /\\ /g' group > group2
mv group2 group
sed -i 's/$/ ""/' group
#sed -i 's/^/"/' group
#sed '/./=' group | sed '/./N; s/\n/ /' > groupd00
#sed '/./=' group | sed '/./N; s/\n/) echo /' > group01
sed 'a\;;' group01 > group02
mv group02 group01
sed -i 's/$/ \\/' group
touch domaingrp
chmod +x domaingrp
dc-tools
;;
6)
######################Remove members from group dc################################
rm -r userdc/
mkdir userdc
cd userdc
dc-tools
;;
7)
########################Add New User DC##############################
hostname=$(hostname)
name3="admin"
name2=""
usersdc=$(samba-tool user list | grep $name )
if [ $name = $name2 ]
then
(dialog --title "ERROR" \
--stdout \
--msgbox "Variable is empty\nWrite a name valid" 0 0 )
then
(dialog --title "ERROR" \
--stdout \
--msgbox "Name not permit \nWrite a new name" 0 0 )
then
(dialog --title "ERROR" \
--stdout \
--msgbox "The user exist \nWrite a new name" 0 0 )
else
mkdir /home/users/$name
chmod 700 /home/users/$name
############################################
dd if=/dev/zero of=/media/usersdc/$name.img bs=${volume}M count=4
mkfs.ext4 /media/usersdc/$name.img
mount -o loop /media/usersdc/$name.img /home/users/$name
echo >> /etc/fstab
echo >> /etc/fstab "#1"$name
echo >> /etc/fstab /media/usersdc/$name.img /home/users/$name ext4 loop 0 2
echo >> /etc/fstab "#2"$name
###########################################
fi
dc-tools
;;
8)
#######################Del User DC###############################
rm -r userdc
mkdir userdc
cd userdc
cp groupdc groupdc-b
delgpr=$(cat groupdc)
(dialog --title "Users that can be removed" \
--stdout \
--msgbox "$delgpr" 0 0 )
######primera parte
sed '/./=' groupdc | sed '/./N; s/\n/ /' > groupdc00
mv groupdc00 groupdc
sed -i 's/$/ off/' groupdc
touch deluserdc
chmod +x deluserdc
######Segunda parte
sed -i "s/^/'/" groupdc-b
sed -i "s/$/'/" groupdc-b
sed '/./=' groupdc-b | sed '/./N; s/\n/) echo /' > groupdc-b01
sed -i 's/$/>> users000/' groupdc-b01
sed '/./=' groupdc-b | sed '/./N; s/\n/ /' > groupdc-b1
sed 'a\;;' groupdc-b01 > groupdc-b02
################################################################
################################################################
smbpasswd -x ${user}
umount /home/users/${user}
rm -r /home/users/${user}
rm -r /media/usersdc/${user}.img
#########delete records in samba & fstab files###################
sed -i "/"#1"${user}/,/"#2"${user}/d" /etc/samba/smb.conf
sed -i "/"#1"${user}/,/"#2"${user}/d" /etc/fstab
sed -i "s/", "${user}//g" /etc/samba/smb.conf
sed -i "s/${user}","//g" /etc/samba/smb.conf
sed -i "s/${user}//g" /etc/samba/smb.conf
cd ..
rm -r userdc
dc-tools
;;
9)
##############Check which users have a group###############
rm -r grouplist/
mkdir grouplist
cd grouplist
echo '(dialog --title "Members Of $grupo" --stdout --msgbox "$respuesta" 0 0 )' >>
domaingrp
./domaingrp
cd ..
rm -r grouplist/
dc-tools
;;
10)
#################Check which groups a user belongs to################
rm -r userlist/
mkdir userlist
cd userlist
echo '(dialog --title "Groups to which the user $user belongs" --stdout --msgbox
"$respuesta" 0 0 )' >> usergrp
./usergrp
cd ..
rm -r userlist/
dc-tools
;;
11)
#######################Add new share in Domain###############################
share=$(dialog --title "" \
--stdout \
--inputbox "Name New Share?" 0 0)
var1=$share
var2=""
var3=$(ls /home/shares | grep $share)
if [ $var1 = $var2 ]
then
(dialog --title "ERROR" \
--stdout \
--msgbox "Variable is empty\nWrite a name valid" 0 0 )
then
(dialog --title "ERROR" \
--stdout \
--msgbox "Net share exists\nGive it a different name" 0 0 )
dc-tools
else
varuser1=""
varuser2=$(samba-tool user list | grep $admin)
if [ $varuser2 = $varuser1 ]
then
(dialog --title "ERROR" \
--stdout \
--msgbox "Variable is empty.\nOr the user no exists\nWrite a name
valid" 0 0 )
else
mkdir /home/shares/$share
chmod 700 /home/shares/$share
############################################
dd if=/dev/zero of=/home/shares/$share.img bs=${volume}M count=4
mkfs.ext4 /home/shares/$share.img
mount -o loop /home/shares/$share.img /home/shares/$share
echo >> /etc/fstab
echo >> /etc/fstab "#1"$share
echo >> /etc/fstab /home/shares/$share.img /home/shares/$share ext4 loop 0 2
echo >> /etc/fstab "#2"$share
############################################
echo >> /etc/samba/smb.conf
echo >> /etc/samba/smb.conf "#1"$share
echo >> /etc/samba/smb.conf ""[$share]
echo >> /etc/samba/smb.conf "path = /home/shares/"$share
echo >> /etc/samba/smb.conf "read only = no"
echo >> /etc/samba/smb.conf "admin users = "$admin
echo >> /etc/samba/smb.conf "#2"$share
chmod 700 /home/shares/$share
12)
#######################Delete net Share in Domain###############################
var1=$(basename $sharedelete)
if [ $sharedelete = /home/shares/. ]
then
(dialog --title "ERROR" \
--stdout \
--msgbox "\nNo net share floder selected\nTry again" 0 0 )
then
(dialog --title "ERROR" \
--stdout \
--msgbox "\nNo net share floder selected\nTry again" 0 0 )
else
umount ${sharedelete}
rm -r $sharedelete
rm -r ${sharedelete}.img
13)
######################List Computer Of Domain################################
#samba-tool computer list
#
computer=$(samba-tool computer list)
(dialog --title "computer list" \
--stdout \
--msgbox "$computer" 0 0 )
dc-tools
;;
14)
######################Delete Computer Of Domain################################
rm -r computerlist/
mkdir computerlist
cd computerlist
echo '(dialog --title "The Computer That Will Be Eliminated Is:" --stdout --msgbox
"$computer" 0 0 )' >> computergrp
echo 'samba-tool computer delete "$computer"' >> computergrp
./computergrp
cd ..
rm -r computerlist/
dc-tools
;;
15)
#######################Show Net Shares###############################
varshare=$(smbclient -L localhost -U%)
(dialog --title "List net disk Shares" \
--stdout \
--msgbox "$varshare" 0 0 )
dc-tools
;;
16)
######################Browse and select files to
delete################################
17)
#################Make a user a domain administrator###################
rm -r userlistadm/
mkdir userlistadm
cd userlistadm
echo '(dialog --title "Groups to which the user $user belongs" --stdout --msgbox
"$respuesta" 0 0 )' >> usergrp
./usergrp
cd ..
rm -r userlistadm/
dc-tools
dc-tools
;;
18)
##################Edit smb.conf#############################
;;
19)
#######################Shutdown###############################
(dialog --infobox "El equipo se apagara en diez segundos" 0 0)
sleep 1
(dialog --infobox "nueve" 0 0)
sleep 1
(dialog --infobox "ocho" 0 0)
sleep 1
(dialog --infobox "siete" 0 0)
sleep 1
(dialog --infobox "seis" 0 0)
sleep 1
(dialog --infobox "cinco" 0 0)
sleep 1
(dialog --infobox "cuatro" 0 0)
sleep 1
(dialog --infobox "tres" 0 0)
sleep 1
(dialog --infobox "dos" 0 0)
sleep 1
(dialog --infobox "uno" 0 0)
sleep 1
halt -p
;;
20)
#########################Restart#######################
reboot
;;
21)
##################Exit#############################