Se añade opcion de agregar cualquier carpeta a Samba

This commit is contained in:
q3aql 2018-06-07 15:46:50 +02:00
parent 72974ac9b7
commit fbb5e63cae
3 changed files with 153 additions and 31 deletions

View File

@ -2,13 +2,13 @@
############################################################## ##############################################################
# Crear carpetas compartidas en Linux # # Crear carpetas compartidas en Linux #
# U. Modificacion: 02-06-2018 # # U. Modificacion: 07-06-2018 #
# Autor: q3aql # # Autor: q3aql #
# Contacto: q3aql@openmailbox.org # # Contacto: q3aql@openmailbox.org #
# Licencia: GPL v2.0 # # Licencia: GPL v2.0 #
############################################################## ##############################################################
VERSION="1.4" VERSION="1.5"
M_DATE="020618" M_DATE="070618"
# Parametros globales # Parametros globales
linuxSambaFolder="/opt/easy-samba" linuxSambaFolder="/opt/easy-samba"
@ -65,6 +65,25 @@ function convertText() {
echo ${wordToConvert} echo ${wordToConvert}
} }
# Funcion para extraer el nombre de la carpeta de una ruta
function extractFolder() {
pathToExtract="${1}/"
findFolder=0
count=1
nameFolder=$(echo ${pathToExtract} | cut -d "/" -f ${count})
count=$(expr $count + 1)
while [ ${findFolder} -eq 0 ] ; do
nameFolderTemp=$(echo ${pathToExtract} | cut -d "/" -f ${count})
if [ -z "${nameFolderTemp}" ] ; then
findFolder=1
else
nameFolder="${nameFolderTemp}"
count=$(expr $count + 1)
fi
done
echo "${nameFolder}"
}
# Funcion para crear enlace en el escritorio/home de los usuarios # Funcion para crear enlace en el escritorio/home de los usuarios
# Sintaxis: createFolderLink [carpeta] # Sintaxis: createFolderLink [carpeta]
function createFolderLink() { function createFolderLink() {
@ -143,6 +162,49 @@ else
fi fi
} }
# Funcion para agregar una carpeta a Samba
function addNewFolder() {
echo ""
echo -n "* Introduce la ruta absoluta de la carpeta a agregar: " ; read folder
pathExtracted=$(extractFolder "${folder}")
endFolder=$(convertText "${pathExtracted}")
if [ -z "${folder}" ] ; then
echo "* Debes introducir la ruta absoluta de una carpeta!"
echo ""
echo -n "* Pulsa INTRO para continuar... " ; read continue
elif [ -d "${folder}" ] ; then
if [ -d ${linuxSambaFolder}/${endFolder} ] ; then
echo "* Una carpeta con el mismo nombre ya se encuentra agregada o creada!"
echo ""
echo -n "* Pulsa INTRO para continuar... " ; read continue
else
ln -s "${folder}" ${linuxSambaFolder}/${endFolder} 2> /dev/null
output=$?
if [ ${output} -ne 0 ] ; then
echo "* Error: Fallo al agregar la carpeta '${folder}'"
echo ""
echo -n "* Pulsa INTRO para continuar... " ; read continue
else
echo "[${endFolder}]" >> ${sambaConfig}
echo "# Folder to ${linuxSambaFolder}/${endFolder} # 00bc00" >> ${sambaConfig}
echo "path = ${linuxSambaFolder}/${endFolder}" >> ${sambaConfig}
echo "comment = Folder by easy-samba ${VERSION} (${M_DATE})" >> ${sambaConfig}
echo "browseable = yes" >> ${sambaConfig}
echo "writeable = yes" >> ${sambaConfig}
echo "read only = no" >> ${sambaConfig}
echo "guest ok = yes" >> ${sambaConfig}
echo "" >> ${sambaConfig}
echo "* Carpeta '${folder}' agregada con exito!"
createFolderLink ${endFolder}
fi
fi
else
echo "* La carpeta introducida no existe!"
echo ""
echo -n "* Pulsa INTRO para continuar... " ; read continue
fi
}
# Funcion para crear carpeta compartida con acceso para todos # Funcion para crear carpeta compartida con acceso para todos
function newFolderEveryone() { function newFolderEveryone() {
echo "" echo ""
@ -441,39 +503,43 @@ while [ ${mostrarMenu} -eq 0 ] ; do
echo "" echo ""
echo "* easy-samba ${VERSION} (${M_DATE})" echo "* easy-samba ${VERSION} (${M_DATE})"
echo "" echo ""
echo " 1 - Crear carpeta compartida" echo " 1 - Agregar carpeta a Samba"
echo " 2 - Crear carpeta compartida (solo lectura)" echo " 2 - Crear carpeta compartida"
echo " 3 - Crear carpeta compartida (para un usuario)" echo " 3 - Crear carpeta compartida (solo lectura)"
echo " 4 - Crear carpeta compartida (printable)" echo " 4 - Crear carpeta compartida (para un usuario)"
echo " 5 - Reiniciar servicios de Samba" echo " 5 - Crear carpeta compartida (printable)"
echo " 6 - Ver carpetas compartidas disponibles" echo " 6 - Reiniciar servicios de Samba"
echo " 7 - Borrar carpeta compartida" echo " 7 - Ver carpetas compartidas disponibles"
echo " 8 - Restaurar smb.conf" echo " 8 - Borrar carpeta compartida"
echo " 9 - Restaurar smb.conf"
echo "" echo ""
echo " 9 - Salir" echo " 10 - Salir"
echo "" echo ""
echo -n " * Elige una opcion: " ; read opcion echo -n " * Elige una opcion: " ; read opcion
if [ "${opcion}" == "1" ] ; then if [ "${opcion}" == "1" ] ; then
newFolderEveryone addNewFolder
restartSamba restartSamba
elif [ "${opcion}" == "2" ] ; then elif [ "${opcion}" == "2" ] ; then
newFolderReadOnly newFolderEveryone
restartSamba restartSamba
elif [ "${opcion}" == "3" ] ; then elif [ "${opcion}" == "3" ] ; then
newFolderForUser newFolderReadOnly
restartSamba restartSamba
elif [ "${opcion}" == "4" ] ; then elif [ "${opcion}" == "4" ] ; then
newFolderPrintable newFolderForUser
restartSamba restartSamba
elif [ "${opcion}" == "5" ] ; then elif [ "${opcion}" == "5" ] ; then
newFolderPrintable
restartSamba restartSamba
elif [ "${opcion}" == "6" ] ; then elif [ "${opcion}" == "6" ] ; then
viewFolders restartSamba
elif [ "${opcion}" == "7" ] ; then elif [ "${opcion}" == "7" ] ; then
removeFolder viewFolders
elif [ "${opcion}" == "8" ] ; then elif [ "${opcion}" == "8" ] ; then
restoreSmb removeFolder
elif [ "${opcion}" == "9" ] ; then elif [ "${opcion}" == "9" ] ; then
restoreSmb
elif [ "${opcion}" == "10" ] ; then
mostrarMenu=1 mostrarMenu=1
elif [ -z "${opcion}" ] ; then elif [ -z "${opcion}" ] ; then
echo "" echo ""

View File

@ -2,13 +2,13 @@
############################################################## ##############################################################
# Crear carpetas compartidas en Linux (GTK) # # Crear carpetas compartidas en Linux (GTK) #
# U. Modificacion: 02-06-2018 # # U. Modificacion: 07-06-2018 #
# Autor: q3aql # # Autor: q3aql #
# Contacto: q3aql@openmailbox.org # # Contacto: q3aql@openmailbox.org #
# Licencia: GPL v2.0 # # Licencia: GPL v2.0 #
############################################################## ##############################################################
VERSION="1.4 (GTK)" VERSION="1.5 (GTK)"
M_DATE="020618" M_DATE="070618"
# Parametros globales # Parametros globales
linuxSambaFolder="/opt/easy-samba" linuxSambaFolder="/opt/easy-samba"
@ -62,6 +62,25 @@ function convertText() {
echo ${wordToConvert} echo ${wordToConvert}
} }
# Funcion para extraer el nombre de la carpeta de una ruta
function extractFolder() {
pathToExtract="${1}/"
findFolder=0
count=1
nameFolder=$(echo ${pathToExtract} | cut -d "/" -f ${count})
count=$(expr $count + 1)
while [ ${findFolder} -eq 0 ] ; do
nameFolderTemp=$(echo ${pathToExtract} | cut -d "/" -f ${count})
if [ -z "${nameFolderTemp}" ] ; then
findFolder=1
else
nameFolder="${nameFolderTemp}"
count=$(expr $count + 1)
fi
done
echo "${nameFolder}"
}
# Funcion para crear enlace en el escritorio/home de los usuarios # Funcion para crear enlace en el escritorio/home de los usuarios
# Sintaxis: createFolderLink [carpeta] # Sintaxis: createFolderLink [carpeta]
@ -143,6 +162,40 @@ else
fi fi
} }
# Funcion para agregar una carpeta a Samba
function addNewFolder() {
folder=$(zenity --entry --title "easy-samba ${VERSION} (${M_DATE})" --text "Introduce la ruta absoluta de la carpeta a agregar:")
pathExtracted=$(extractFolder "${folder}")
endFolder=$(convertText "${pathExtracted}")
if [ -z ${folder} ] ; then
zenity --title "easy-samba ${VERSION} (${M_DATE})" --warning --text "Debes introducir la ruta absoluta de una carpeta!"
elif [ -d "${folder}" ] ; then
if [ -d ${linuxSambaFolder}/${endFolder} ] ; then
zenity --title "easy-samba ${VERSION} (${M_DATE})" --error --text "Una carpeta con el mismo nombre ya se encuentra agregada o creada!"
else
ln -s "${folder}" ${linuxSambaFolder}/${endFolder} 2> /dev/null
output=$?
if [ ${output} -ne 0 ] ; then
zenity --title "easy-samba ${VERSION} (${M_DATE})" --error --text "Error: Fallo al agregar la carpeta '${folder}'"
else
echo "[${endFolder}]" >> ${sambaConfig}
echo "# Folder to ${linuxSambaFolder}/${endFolder} # 00bc00" >> ${sambaConfig}
echo "path = ${linuxSambaFolder}/${endFolder}" >> ${sambaConfig}
echo "comment = Folder by easy-samba ${VERSION} (${M_DATE})" >> ${sambaConfig}
echo "browseable = yes" >> ${sambaConfig}
echo "writeable = yes" >> ${sambaConfig}
echo "read only = no" >> ${sambaConfig}
echo "guest ok = yes" >> ${sambaConfig}
echo "" >> ${sambaConfig}
zenity --title "easy-samba ${VERSION} (${M_DATE})" --info --text "Carpeta '${folder}' agregada con exito!"
createFolderLink ${folder}
fi
fi
else
zenity --title "easy-samba ${VERSION} (${M_DATE})" --error --text "La carpeta introducida no existe!"
fi
}
# Funcion para crear carpeta compartida con acceso para todos # Funcion para crear carpeta compartida con acceso para todos
function newFolderEveryone() { function newFolderEveryone() {
folder=$(zenity --entry --title "easy-samba ${VERSION} (${M_DATE})" --text "Introduce el nombre de la carpeta que deseas crear (sin acentos):") folder=$(zenity --entry --title "easy-samba ${VERSION} (${M_DATE})" --text "Introduce el nombre de la carpeta que deseas crear (sin acentos):")
@ -398,12 +451,15 @@ mostrarMenu=0
backupSmbConf backupSmbConf
while [ ${mostrarMenu} -eq 0 ] ; do while [ ${mostrarMenu} -eq 0 ] ; do
clear clear
opcion=$(zenity --width=390 --height=355 --list --title "easy-samba ${VERSION} ($M_DATE)" \ opcion=$(zenity --width=390 --height=380 --list --title "easy-samba ${VERSION} ($M_DATE)" \
--column "Selecciona una opcion:" "Crear carpeta compartida" "Crear carpeta compartida (solo lectura)" \ --column "Selecciona una opcion:" "Agregar carpeta a Samba" "Crear carpeta compartida" \
"Crear carpeta compartida (para un usuario)" "Crear carpeta compartida (printable)" \ "Crear carpeta compartida (solo lectura)" "Crear carpeta compartida (para un usuario)" \
"Reiniciar servicios de Samba" "Ver carpetas compartidas disponibles" "Borrar carpeta compartida" \ "Crear carpeta compartida (printable)" "Reiniciar servicios de Samba" \
"Restaurar smb.conf" "Salir") "Ver carpetas compartidas disponibles" "Borrar carpeta compartida" "Restaurar smb.conf" "Salir")
if [ "${opcion}" == "Crear carpeta compartida" ] ; then if [ "${opcion}" == "Agregar carpeta a Samba" ] ; then
addNewFolder
restartSamba
elif [ "${opcion}" == "Crear carpeta compartida" ] ; then
newFolderEveryone newFolderEveryone
restartSamba restartSamba
elif [ "${opcion}" == "Crear carpeta compartida (solo lectura)" ] ; then elif [ "${opcion}" == "Crear carpeta compartida (solo lectura)" ] ; then

View File

@ -2,13 +2,13 @@
############################################################## ##############################################################
# Crear carpetas compartidas en Linux (GTK) # # Crear carpetas compartidas en Linux (GTK) #
# U. Modificacion: 02-06-2018 # # U. Modificacion: 07-06-2018 #
# Autor: q3aql # # Autor: q3aql #
# Contacto: q3aql@openmailbox.org # # Contacto: q3aql@openmailbox.org #
# Licencia: GPL v2.0 # # Licencia: GPL v2.0 #
############################################################## ##############################################################
VERSION="1.4 (GTK)" VERSION="1.5 (GTK)"
M_DATE="020618" M_DATE="070618"
# Enlace con gksudo,gksu o bessu a easy-samba-gtk # Enlace con gksudo,gksu o bessu a easy-samba-gtk
function showRootMessage() { function showRootMessage() {