Re: script con privilegios
El dom, 01-07-2007 a las 21:43 -0300, etr4gu escribió:
> hola lista
> necesito hacer unos scripts para unos operadores de servidores linux,
> y lo que estoy necesitando basicamente son dos cosas
> 1- que los operadores nunca tengan acceso al shell.
> 2- que el usuario que corre el script tenga permisos de root
>
> sobre el 1er punto trate de hacer que en el
> /home/usuario/.bash_profile puse la llamada al script y despues exit,
> pero en algunos casos el operador queda en la shell, como por ejemplo
> al llamar a una pantalla que hace
> tail -f /var/log/messages
> cuando apreta control-c para cortar queda en el shell
>
> sobre el segundo no tengo muy claro, lo que hice porque anda es al
> usuario en /etc/passwd ponerle usuid 0:0 pero no creo que sea una
> buena practica, se que se puede usar sudo en cada comando pero no lo
> tengo muy claro
> que me recomiendan?
>
> aca va el script principal por si a alguien le interesa
> desde ya muchas gracias
>
Yo tuve ese problema y ademas el de ejecutar en servidores remotos
Lo solucione proramando en C + ncurses una consola donde solo puede
elegir la tarea y darle OK o cancel y le va mostrando la salida en otra
ventanita
Por ultimo modifique en /etc/passwd y le puse como shell mi programita
>
> #pantalla de consulta para operadores
> dialog --backtitle "Administrador de Firewall " --cancel-label "Salir"
> --title "Menu \
> Principal" --menu "Mover usando [UP] [DOWN],[Enter] para \
> Seleccionar " 18 80 12 \
> Cortar "Cortar Internet para traer datos de filiales" \
> Devolver "Volver a poner Internet" \
> Firewall "Reiniciar Firewall " \
> Dansguardian "Reiniciar Dansguardian" \
> Squid "Reiniciar Squid" \
> Hosts "Listar Hosts " \
> Navegacion "Ver log de navegacion " \
> Mensages "Ver log de messages " \
> Seguridad "Ver log de Seguridad " \
> Buscar "Buscar IP " 2>/tmp/menuitem.$$
>
> menuitem=`cat /tmp/menuitem.$$`
>
> opt=$?
>
> case $menuitem in
> Cortar) /etc/hosts.cambiar.sh;
> ./internet.sh;;
> Devolver) /etc/hosts.volver.sh;
> ./internet.sh;;
> Firewall) /etc/init.d/firewall restart;
> ./internet.sh;;
> Dansguardian) /etc/init.d/dansguardian restart;
> ./internet.sh;;
> Squid) /etc/init.d/squid restart;
> ./internet.sh;;
> Hosts) less /etc/hosts;
> ./internet.sh;;
> Buscar) ./buscar.sh;
> ./internet.sh;;
> Navegacion) tail -f /var/log/dansguardian/access_dansguardian.log;
> ./internet.sh;;
> Seguridad) tail -f /var/log/secure;
> ./internet.sh;;
> Navegacion) tail -f /var/log/messages;
> ./internet.sh;;
> esac
>
>
Reply to: