Linux/Unix Shell Scripting - hola, necesito ayuda con una programacion en bash

   
Vista:

hola, necesito ayuda con una programacion en bash

Publicado por nico (7 intervenciones) el 24/05/2011 03:48:47
hola, keria ver si es que me podian orientar con este ejercicio k tengo k hacer ...

Una empresa dedicada al rubro de hacer ollitos de botones .-. los contrata a ustedes para hacer la administracion de su unico servidor linux, para desgracia suya, el servidor le borraron toda la informacion, por lo cual presenta las siguientes caracteristicas.

Tiene 5 File system con los siguientes nombres:
/
/disk 1
/disk 2
/disk 3
/Respaldo

En el primero esta el sistema operativos.
el segundo, estan los usuarios.
tercer estan las aplicaciones.
cuarto estan las shell de administracion.
Quinto estan los respaldos de usuario.

Como esta empresa tiene poca plata, decide que el hijo del dueño sea el operador del servidor, por lo cual ustedes se enfrentan al siguiente dilema.

Primero: No sabe nada de computacion.
Segundo: Es extremadamente curioso.
Tercero: Fue el responsable de borrar el servidor la vez anterior.

El dueño les pide a ustedes que generen una cuenta de usuario que le permita una vez logeado, activar un menu de administracion.
(una vez logeado caiga en un menu de administracion).

Este menu tiene que realizar las siguientes actividades:
1 - Ver los usuarios Conectados
2 - Ver el espacio de un disco
3 - Poder crear usuario
4 - Poder crear un directorio
5 - Poder cambiar la password de un usuario menos la root
6 - Poder realizar respaldo de los directorios de un usuario
7 - Poder saber cuanto espacio ocupa un usuario y sus directorios
8 - Poder listar los usuarios del servidor
9 - NOSOTROS PROPONEMOS
10 - Salir (logout de la cuenta)

CONDICIONES:
* Tiene que validar que solo puede ingresar las opciones de la 1 a la 10.
* Debe validar que la opcion 5 no pueda ingresar el usuario root.
* Debe mostrar en el extremo superior derecho la fecha y la hora.
* Debe mostrar en el extremo superior izquierdo el usuario conectado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

hola, necesito ayuda con una programacion en bash

Publicado por caic (82 intervenciones) el 24/05/2011 11:03:34
Hola!

Este es un foro de consultas. ¿Cual es la tuya? :)

Si no sabes por donde empezar, yo te recomiendo que hagas primero el menú. Ya buscarás luego cómo hacer que se ejecute al logarse.

Saludos y suerte!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por nico. (7 intervenciones) el 25/05/2011 00:06:19
por ejemplo esto es lo k llevo, si es que estoy mal en una parte porfa corrigeme .. y el punto 7 no se como hacerlo ..

#!/bin/bash
#autor: yo
#fecha: 19/05/2011

#descripcion: menu

menu () {

echo "###############################################";
echo "################## MENU #######################";
echo "###############################################";

echo "1) ver usuarios conectados";
echo "2) Ver el espacio de un disco";
echo "3) Poder crear usuario";
echo "4) Poder crear un directorio";
echo "5) Poder cambiar la password de un usuario menos la root";
echo "6) Poder realizar respaldo de los directorios de un usuario";
echo "7) Poder saber cuanto espacio ocupa un usuario y sus directorios";
echo "8) Poder listar los usuarios del servidor";
echo "9) NOSOTROS PROPONEMOS";
echo "10) Salir (logout de la cuenta)";

}

menu
while read -p "Elige una opcion:" opc ; do
case $opc in

"1") usuarios_conectados ;;
"2") ;;
"3") ./crearusuarios.sh ;;
"4") ./creardirectorios.sh ;;
"5") ./cambiarcontraseñas.sh ;;
"6") more respaldo.log ;;
"7") ;;
"8") ;;
"9") ./eliminarusuarios.sh ;;
"10") exit ;;
*) echo "error" && sleep 3 ""

esac
menu
done
exit 0
---------------------------------------------------
1 ... CREAMOS UNA SHELL PARA VER USUARIOS CONECTADOS ..

#! /bin/sh

# cantidad de usuarios conectados
uconn=`who | wc -l | sed 's/^ *//g'`
# cantidad de usuarios reales
ureal=`who | cut -f1 -d ' ' | sort -u | wc -l | sed 's/^ *//g'`

# mostrar usuarios con el num. de veces que esta conectado
who | cut -f1 -d ' ' | uniq -c | sort | sed 's/^ *//g'

# imprimir informacion
echo "connected: $uconn"
echo "reales : $ureal"

-------------------------------------------------------
2 ... CREAMOS SHELL PARA VER ESPACIO DEL DISCO ...
vim espaciodisco.sh

#!/bin/bash
#autor: nicolas
#fecha: 12/05/2011

#descripcion: espacio en disco

echo "Ver espacio en disco";
read df-h
$df -h
echo "El espacio $df -h en disco";
echo "";
date >> respaldo.log
echo "El espacio $df -h en disco"; >> respaldo.log
echo "" >> respaldo.log
exit 0

---------------------------------------------------
cambiar permiso: chmod 700 crearusuarios.sh

-------------------------------------------------

3 ... CREAMOS SHELL PARA CREAR USUARIOS
vim crearusuarios.sh

#!/bin/bash
#autor: nicolas
#fecha: 12/05/2011

#descripcion: crear usuarios

echo "ingresar nombre usuario";
read x
useradd $x
echo "El usuario $x fue creado";
echo "";
date >> respaldo.log
echo "El usuario $x fue creado"; >> respaldo.log
echo "" >> respaldo.log
exit 0
---------------------
cambiar permiso: chmod 700 crearusuarios.sh

---------------------------
4 ...CREAMOS SHELL PARA CREAR DIRECTORIOS

vim creardirectorio.sh
#!/bin/bash
#autor: nicolas
#fecha: 12/05/2011

#descripcion: crear directorios
echo "Crear directorios";
read a
mkdir -p $a
echo "El directorio $a fue creado";
echo "";
date >> respaldo.log
echo "El directorio $a fue creado" >> respaldo.log
echo "" >> respaldo.log
exit 0
----------------
chmod 700 creardirectorio.sh

----------------------
5 ... CREAMOS SHELL PARA CAMBIAR CONTRASEÑA

vim cambiarcontraseña.sh
#!/bin/bash
#autor: nicolas
#fecha: 12/05/2011

#descripcion: cambiar contraseñas
echo "Cambiar password";
read d
passwd $d
echo "La contraseña $d fue cambiada";
echo "";
date >> respaldo.log
echo "La contraseña $d fue cambiada" >> respaldo.log
echo "" >> respaldo.log
exit 0
-----------------
chmod 700 cambiarcontraseña.sh
-----------------------------
6 ..AL EJ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por nico. (7 intervenciones) el 25/05/2011 00:09:55
OOOO NO PUEDO COPIARLO COMPLETO ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por nico. (7 intervenciones) el 25/05/2011 00:03:41
#!/bin/bash
POR EJEMPLO ESTO ES LO QUE LLEVO, SI ES QUE ESTOY MAL PORFA CORRIGEME, Y EL PUNTO NUMERO 7 NO SE COMO HACERLO ... GRACIAS

#autor: yo
#fecha: 19/05/2011

#descripcion: menu

menu () {

echo "###############################################";
echo "################## MENU #######################";
echo "###############################################";

echo "1) ver usuarios conectados";
echo "2) Ver el espacio de un disco";
echo "3) Poder crear usuario";
echo "4) Poder crear un directorio";
echo "5) Poder cambiar la password de un usuario menos la root";
echo "6) Poder realizar respaldo de los directorios de un usuario";
echo "7) Poder saber cuanto espacio ocupa un usuario y sus directorios";
echo "8) Poder listar los usuarios del servidor";
echo "9) NOSOTROS PROPONEMOS";
echo "10) Salir (logout de la cuenta)";

}

menu
while read -p "Elige una opcion:" opc ; do
case $opc in

"1") usuarios_conectados ;;
"2") ;;
"3") ./crearusuarios.sh ;;
"4") ./creardirectorios.sh ;;
"5") ./cambiarcontraseñas.sh ;;
"6") more respaldo.log ;;
"7") ;;
"8") ;;
"9") ./eliminarusuarios.sh ;;
"10") exit ;;
*) echo "error" && sleep 3 ""

esac
menu
done
exit 0
---------------------------------------------------
1 ... CREAMOS UNA SHELL PARA VER USUARIOS CONECTADOS ..

#! /bin/sh

# cantidad de usuarios conectados
uconn=`who | wc -l | sed 's/^ *//g'`
# cantidad de usuarios reales
ureal=`who | cut -f1 -d ' ' | sort -u | wc -l | sed 's/^ *//g'`

# mostrar usuarios con el num. de veces que esta conectado
who | cut -f1 -d ' ' | uniq -c | sort | sed 's/^ *//g'

# imprimir informacion
echo "connected: $uconn"
echo "reales : $ureal"

-------------------------------------------------------
2 ... CREAMOS SHELL PARA VER ESPACIO DEL DISCO ...
vim espaciodisco.sh

#!/bin/bash
#autor: nicolas, mandatory_suicide@live.cl
#fecha: 12/05/2011

#descripcion: espacio en disco

echo "Ver espacio en disco";
read df-h
$df -h
echo "El espacio $df -h en disco";
echo "";
date >> respaldo.log
echo "El espacio $df -h en disco"; >> respaldo.log
echo "" >> respaldo.log
exit 0

---------------------------------------------------
cambiar permiso: chmod 700 crearusuarios.sh

-------------------------------------------------

3 ... CREAMOS SHELL PARA CREAR USUARIOS
vim crearusuarios.sh

#!/bin/bash
#autor: nicolas, mandatory_suicide@live.cl
#fecha: 12/05/2011

#descripcion: crear usuarios

echo "ingresar nombre usuario";
read x
useradd $x
echo "El usuario $x fue creado";
echo "";
date >> respaldo.log
echo "El usuario $x fue creado"; >> respaldo.log
echo "" >> respaldo.log
exit 0
---------------------
cambiar permiso: chmod 700 crearusuarios.sh

---------------------------
4 ...CREAMOS SHELL PARA CREAR DIRECTORIOS

vim creardirectorio.sh
#!/bin/bash
#autor: nicolas, mandatory_suicide@live.cl
#fecha: 12/05/2011

#descripcion: crear directorios
echo "Crear directorios";
read a
mkdir -p $a
echo "El directorio $a fue creado";
echo "";
date >> respaldo.log
echo "El directorio $a fue creado" >> respaldo.log
echo "" >> respaldo.log
exit 0
----------------
chmod 700 creardirectorio.sh

----------------------
5 ... CREAMOS SHELL PARA CAMBIAR CONTRASEÑA

vim cambiarcontraseña.sh
#!/bin/bash
#autor: nicolas, mandatory_suicide@live.cl
#fecha: 12/05/2011

#descripcion: cambiar contraseñas
echo "Cambiar password";
read d
passwd $d
echo "La contraseña $d fue cambiada";
echo "";
date >> respaldo.log
echo "La contraseña $d fue cambiada" >> respaldo.log
echo "" >> respald
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por nico. (7 intervenciones) el 25/05/2011 00:08:54
echo "" >> respaldo.log
exit 0
-----------------
chmod 700 cambiarcontraseña.sh
-----------------------------
6 ..AL EJECUTAR EL SIGUIENTE COMANDO SE PUEDE OBTENER LA IN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por caic (82 intervenciones) el 25/05/2011 11:52:06
Buenas,

Te comento varias cositas:

- Para las diferentes opciones del menú yo usaría funciones dentro del mismo script en vez de scripts diferentes.

- Para la opción 7 (Poder saber cuanto espacio ocupa un usuario y sus directorios), el comando "du" sirve para ver cuando espacio ocupa un directorio/s o un fichero/s.

- Si quieres pegar todo el código puedes usar algun servicio como pastebin.com.

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por nico. (7 intervenciones) el 27/05/2011 16:58:03
gracias por tu ayuda .. ya pude terminar con el menu ... lo otro .. como puedo hacer para que una vez logeado el usuario caiga a este menu???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por caic (82 intervenciones) el 30/05/2011 11:58:16
Hola,

en el home de cada usuario hay un fichero oculto llamado ".profile". También puede haber un ".bash_profile".

Todo lo que metas ahí se ejecutas según el usuario acceda a la máquina.

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

hola, necesito ayuda con una programacion en bash

Publicado por nico. (7 intervenciones) el 30/05/2011 20:37:07
gracias socio, ya me habia resultado, como puedo eliminar este thread .. ya que termine con el ejercicio .. gracias de todas maneras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar