Resultados 1 al 9 de 9

Tema: Configuracion /etc/sudoers

  1. #1
    Vive aquí Avatar de Dulce angustiA
    Ubicación
    BCN
    Edad
    35
    Mensajes
    984

    Predeterminado Configuracion /etc/sudoers

    Hola a tod@s,

    Necesito ayuda con la administración de permisos mediante la configuración del fichero /etc/sudoers.

    Os explico lo que necesito exactamente. Estoy migrando una aplicación cliente Java de Windows a Linux. Dicha aplicación establece conexión con un servidor, el cuál le envía en un paquete su hora de sistema. El cliente, al recibirlo, extrae la hora y ejecuta el comando correspondiente para sincronizar la hora (sé que es un mecanismo muy cutre, pero es lo que se me ha ocurrido hasta el momento..xD). En Windows, con el comando 'time' más la hora obtenida funciona sin problemas. En Linux, utilizando 'date -s' más la hora, NO. Deduzco que es por cuestión de permisos.

    Para ello he intentado hacer lo mismo desde la consola de Ubuntu y, efectivamente, me solicita permisos. Así pues, fácil, modifico /etc/sudoers para que a mi usuario no le pida la contraseña para determinados ejecutables.

    Así pues, con el man y mediante google, he probado varias cosas para conseguirlo, quedando mi fichero así:

    Código:
    # /etc/sudoers
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the man page for details on how to write a sudoers file.
    #
    
    Defaults    env_reset
    
    # Uncomment to allow members of group sudo to not need a password
    #%sudo ALL=NOPASSWD: ALL
    
    # Host alias specification
    
    # User alias specification
    User_Alias DULCEANGUSTIA = dulceangustia
    
    # Cmnd alias specification
    Cmnd_Alias BIN = /bin/, /usr/bin/, /usr/local/bin/ 
    
    # User privilege specification
    root    ALL=(ALL) ALL
    DULCEANGUSTIA ALL= NOPASSWD: BIN
    dulceangustia ALL=(ALL) NOPASSWD: ALL
    
    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL
    No obstante, todavía me sigue pidiendo la contraseña, así que me gustaría que me echárais un cable y para ello os pregunto dos cosas:

    1. ¿Es absolutamente necesario realizar las modificaciones con visudo? A mí es que vi no me gusta un pescao, y lo he hecho con nano. Los cambios se guardan, y no alcanzaría a entender que pueda ser éste el problema. No obstante, si necesitara utilizar visudo, ¿qué hago ahora que lo he modificado con nano?

    2. ¿Cómo debería quedar mi /etc/sudoers para que pudiera ejecutar los binarios especificados sin que se me solicitara contraseña alguna con sudo?

    Espero vuestras indicaciones. Muchas gracias.

  2. #2
    Vive aquí Avatar de Dulce angustiA
    Ubicación
    BCN
    Edad
    35
    Mensajes
    984

    Predeterminado Re: Configuracion /etc/sudoers

    ¿Alguna idea, por favor? He mirado y remirado mil páginas y no entiendo porqué no toman efecto las reglas del fichero sudoers.

    ¿Alguien puede echarme un cable? Gracias.

  3. #3

    Predeterminado Re: Configuracion /etc/sudoers

    Hola, la verdad es que no tengo ni idea de como hacer eso que pides, pero te pongo un enlace en español por si no lo has visto:

    http://www.linuxtotal.com.mx/index.p...info_admon_014

    EDITADO--> Otro enlace por si te ayuda...

    http://alufis35.uv.es/~laura/spip/spip.php?article172
    Última edición por tolyluis; 30/08/2008 a las 13:57 Razón: Añadir más cosas


    ¿Por que te conformas con un windows cuando tienes un /home para ti entero? Usa GNU/Linux

  4. #4
    Vive aquí Avatar de Dulce angustiA
    Ubicación
    BCN
    Edad
    35
    Mensajes
    984

    Predeterminado Re: Configuracion /etc/sudoers

    Muchas gracias por los enlaces, no los había leído (me tiré a los tutoriales en inglés... xD). De todas formas, todos dicen casi lo mismo, aunque en uno de éstos dice que aún poniendo como regla

    usuario ALL=(ALL) ALL

    Se pide el password y que, por norma y si no se modifica con otro parámetro, durante 15 minutos no se requerirá escribir el password de nuevo.

    ¿Acaso no es posible actuar sobre el ordenador sin que se solicite contraseña? En teoría el único que lo permite es root, pero me gustaría saber si es posible proporcionar a otro usuario la misma facilidad, es decir, poder ejecutar cualquier cosa sin necesidad de introducir la contraseña ni una sóla vez (únicamente en el login, claro). Estoy en Ubuntu como podéis deducir...

    Gracias.

  5. #5

    Smile Re: Configuracion /etc/sudoers

    ¿Acaso no es posible actuar sobre el ordenador sin que se solicite contraseña? En teoría el único que lo permite es root, pero me gustaría saber si es posible proporcionar a otro usuario la misma facilidad, es decir, poder ejecutar cualquier cosa sin necesidad de introducir la contraseña ni una sóla vez (únicamente en el login, claro). Estoy en Ubuntu como podéis deducir...

    Gracias.
    Hombre si no, no sería linux



    PD.: para el root tambien necesitas contraseña no?
    Última edición por Giens; 30/08/2008 a las 20:04

  6. #6
    Vive aquí Avatar de Dulce angustiA
    Ubicación
    BCN
    Edad
    35
    Mensajes
    984

    Predeterminado Re: Configuracion /etc/sudoers

    No entiendo lo de "Hombresi no, no sería linux"

    Iniciando sesión como root en "recovery mode" no se me pide contraseña para nada (obvio, soy root).

  7. #7

    Predeterminado Re: Configuracion /etc/sudoers

    Joder Dulce angustiA, mira que no quería liarme a investigar , pero al final me pico y me lío yo solo....

    Bueno, solo decir que ya se un poco por donde van los tiros, y lo único que puedo decir es que esto del sudoers es la POLLA (perdón por la grosería, pero es lo que mejor define a sudoers), es potentísimo y permite administrar tus equipos hasta el mínimo detalle.

    Cita Iniciado por Dulce angustiA
    ¿Es absolutamente necesario realizar las modificaciones con visudo? A mí es que vi no me gusta un pescao, y lo he hecho con nano. Los cambios se guardan, y no alcanzaría a entender que pueda ser éste el problema. No obstante, si necesitara utilizar visudo, ¿qué hago ahora que lo he modificado con nano?
    Cuando leí tu mensaje me chocaba que Ubuntu usase vi para el comando visudo, todo esto del sudoers (de lo que no tenía ni idea y gracias a este hilo he aprendido una cosa más) lo he hecho bajo Debian y no usa vi, usa nano para visudo. Ahora estoy en Ubuntu y diosss que asco, hacía años que no usaba vi (desde los tiempos en que me inicié en linux y no conocía nano). Si la gente dice que vi es un editor super-potente será por algo, pero a mi particularmente me exaspera.

    Por otro lado, usa siempre visudo en uno de los enlaces que te puse antes pone lo siguiente:
    Forma Incorrecta, pero solucionable Lo malo es que llegados a este punto, se suele hacer mal, porque pensamos: "si este archivo no tiene derechos de escritura ni el propio root, habrá que cambiar los permisos para que se pueda escribir. Y una vez modificado el archivo, pues vuelvo a cambiar los permisos y ya està "

    Después de pensar esto, debería sonar un campanazo de error, o un gran Meeeeeeeeeeck, porque este pensamiento llevado a efecto, crea un conflicto muy interesante, si no se tiene contraseña para loguearse directamente como root (como suele ocurrir en ubuntu), ya no se puede usar el sudo para nada, puesto que los permisos del archivo de configuración de sudo no son correctos, pero paradójicamente tampoco se pueden modificar para cambiarlos D porque no te puedes loguear como root haciendo sudo su(¿a que es divertido?).

    Bien, la solución cuando no hay password para root, y no hay forma de entrar como root, es reiniciar el sistema, y entrar a ubuntu en el modo recorvery mode (modo de rescate) y elegir la opción root. Esto te permite llegar a una consola (sin gráficos) donde ya eres root (uff ) donde se pueden modificar los permisos con un simple:

    chmod 0440 /etc/sudoers

    Al reiniciar en el modo normal todo estará arreglado y el susto habrá pasado.
    Así que ya ves la que se puede montar si no usas visudo, pero hay una buena noticia, ¡se puede cambiar!, vas a poder editar con nano si te apetece ya que hay una opción que permite cambiar el editor de visudo.

    Cita Iniciado por Dulce angustiA
    ¿Acaso no es posible actuar sobre el ordenador sin que se solicite contraseña? En teoría el único que lo permite es root, pero me gustaría saber si es posible proporcionar a otro usuario la misma facilidad, es decir, poder ejecutar cualquier cosa sin necesidad de introducir la contraseña ni una sóla vez (únicamente en el login, claro). Estoy en Ubuntu como podéis deducir...
    Si, en el enlace que te he puesto antes pone eso que dices, tenemos por un lado

    Defaults !authenticate, log_host

    Desactiva 'off' el default 'authenticate' que por defecto esta activado 'on' e indica que todos los usuarios que usen sudo deben identificarse con su contraseña, obviamente esto es un ejemplo y sería una pésima idea usarlo realmente, ya que ningún usuario necesitaria autenticarse, esto es porque estamos usando Defaults de manera global. La segunda opción 'log_host' que por defecto está en 'off' la activamos y bitacoriza el nombre del host cuando se usa un archivo (en vez de syslog) como bitácora de sudo.

    Defaults:ana !authenticate

    Aqui se aprecia algo más lógico, usamos opciones por usuario en vez de global, indicando que el usuario 'ana' no requerira auténticarse. Pero todos los demás si.
    Con esta opción permites al usuario ana usar todo tipo de comandos (por supuesto mediante sudo) sin que se le pida nunca su contraseña.

    Fijándome en el ejemplo que ponen en el enlace que puse te recomiendo que uses comentarios para liarte menos y saber que estás definiendo en cada momento.

    Es decir, si tu sudoers quedase así:

    # /etc/sudoers
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the man page for details on how to write a sudoers file.
    #

    # Defaults env_reset
    # Esta línea hace que el usuario dulceangustia ejecute cualquier comando mediante sudo sin pedir pass
    Defaults:dulceangustia !authenticate

    # Host alias specification

    # User alias specification

    # Cmnd alias specification

    # User privilege specification
    root ALL=(ALL) ALL
    # esta línea permite ejecutar todos los comandos al usuario dulceangusia (como viene en Ubuntu por defecto)
    dulceangustia ALL=(ALL) ALL
    Haces que tu usuario ejecute cualquier comando sin necesidad de pass mediante sudo, es decir:

    si haces a palo seco: apt-get update - NO FUNCIONA
    si haces: sudo apt-get update - el sistema hará la orden sin password de usuario

    Como puedes ver, esto no es nada seguro, ya que podrías lanzar cualquier comando sin tener que meter tu pass.

    Ahora es cuando entra en juego esto:

    NOPASSWD Y PASSWD

    Por defecto sudo requiere que cualquier usuario se identifique o auténtifique con su contraseña. Aprendimos en la sección de 'Opciones' o 'Defaults' que es posible indicar que un usuario o alias de usuario no requiera de autentificación. Pero el control granular propio de sudo, permite ir aun más lejos al indicar a nivel de comandos, cuáles requieren contraseña para su uso y cuáles no.

    gerardo webserver = NOPASSWD: /bin/kill, /usr/bin/lprm, /etc/httpd/conf/

    Usuario 'gerardo' en el equipo 'webserver' no requerira contraseña para los comandos listados. El tag se hereda, es decir no solo el primer elemento de la lista de comandos, sino los subsiguientes. Suponiendo que el último '/etc/httpd/conf/' elemento, que permite modificar cualquier archivo contenido en el directorio, si deseamos que use contraseña, lo siguiente lo conseguirá:

    gerardo webserver = NOPASSWD: /bin/kill, /usr/bin/lprm, PASSWD: /etc/httpd/conf/

    Aunque ya que solicitar contraseña es el default o defecto preestablecido, lo anterior también funcionará de la siguiente manera:

    gerardo webserver = /etc/httpd/conf/, NOPASSWD: /bin/kill, /usr/bin/lprm,
    Con la opción NOPASSWD dices que comandos quieres que se usen sin que el sistema te pida el pass, un ejemplo:

    # /etc/sudoers
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the man page for details on how to write a sudoers file.
    #

    # Defaults env_reset

    # Host alias specification

    # User alias specification

    # Cmnd alias specification

    # User privilege specification
    root ALL=(ALL) ALL
    # esta línea permite ejecutar todos los comandos al usuario dulceangusia (como viene en Ubuntu por defecto)
    dulceangustia ALL=(ALL) ALL
    dulceangustia ALL= NOPASSWD: /usr/bin/apt-get
    Haces que al usuario dulceangustia se le pida pass al usar sudo excepto si hace sudo apt-get loquesea (p.e. si haces sudo apt-get update o apt-get upgrade lo hace sin pedir pass)

    Por otro lado, creo que usas los alias de forma redundante, la parte esta que has puesto al inicio

    User_Alias DULCEANGUSTIA = dulceangustia
    sobra, ya que en tu equipo ya tienes un usuario dulceangustia. Los Alias son opcionales, no obligatorios, y se usan para acortar al citar equipos (Host_Alias), usuarios (User_Alias) o comandos (Cmnd_Alias).

    Por lo tanto para que puedas usar date sin que pida permisos y que puedas usar nano como editor de visudo deberías hacer el sudoers de esta manera:


    # /etc/sudoers
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the man page for details on how to write a sudoers file.
    #

    # Defaults env_reset
    # Hace que el editor para visudo sea nano
    Defaults editor= /bin/nano
    # Host alias specification

    # User alias specification

    # Cmnd alias specification

    # User privilege specification
    root ALL=(ALL) ALL
    # permite ejecutar todos los comandos al usuario dulceangustia (como viene en Ubuntu por defecto)
    dulceangustia ALL=(ALL) ALL
    # permite usar el comando date sin pedir pass
    dulceangustia ALL= NOPASSWD: /bin/date
    La única limitación es que para ajustar la fecha en el cliente el comando que tienes que usar es sudo date, por lo que parece no se puede configurar el sudoers para que mi usuario (luis) pueda hacer comandos de root sin anteponer sudo, cosa lógica por otro lado. Así que no se si todo esto te servirá.

    De todas formas si el archivo sudoers tiene algo inconsistente te "pega un toque" antes de guardarlo para que lo rectifiques.

    Una última cosa si haces:

    Código:
    sudo su
    y luego haces:

    Código:
    sudo -V
    ves todas las opciones que trae visudo por defecto en el sistema, como puedes ver hay multitud de ellas, por eso digo que sudoers es una herramienta potentísima para administrar el/los equipo(s).

    Bueno, me he pegado una buena pechá trasteando con visudo hasta que he dado con la forma de hacer lo que pedías, y no me importa, por que ya te digo, he aprendido una cosa nueva (que nunca está de más). Sólo espero que te sirva y que al final puedas hacer lo que tenías pensado. Por otro lado yo me voy mañana (bueno, mejor dicho, hoy ) de vacaciones y ya no voy a poder forear. Si eso, sigue comentando aquí los resultados y ya lo leeré cuando vuelva.

    ¡Nos vemos!

    PD. Aunque todas las pruebas las he hecho bajo Debian, he probado ahora en Ubuntu lo que he aprendido y funciona si dejas la misma estructura del sudoers de Debian en Ubuntu.
    Última edición por tolyluis; 31/08/2008 a las 04:41


    ¿Por que te conformas con un windows cuando tienes un /home para ti entero? Usa GNU/Linux

  8. #8
    Vive aquí Avatar de aanarko_
    Ubicación
    /home/aanarko
    Mensajes
    846

    Predeterminado Re: Configuracion /etc/sudoers

    Huolas,

    Pedazo de mini-howto que te has currado toyluis Gracie. Yo cuando entre en la empresa que estoy ahora siempre habia usado nano (soy administrador de sistemas y bueno, los archivos de configuracion no son muy largos)

    Pero los programadores con los que trabajo, usan todos vi y al principio yo renegaba muchisimo de usarlo, me parecia super dificil y bastante caotico.

    Pues bien, si te pones en una semana y un tio que edita 5 archivos de 800 lineas cada uno, te explica los comandos que usa y porque les usa empiezas a entender el poder de vi. Te aseguro que si sabes manejarlo el vi te hace hasta pajas!

    En serio, hace cosas que no sabria hacer con ningun otro editor de texto (decirle, buscame de la linea 3 a la 200 la cadena 'define' y la borras o la sustituyes o borrame de esta linea a tal linea el penultimo caracter y mil cosas asi). Es cierto que si no le vas a dar un uso intensivo y vas a hacer uso de todas sus funciones es mejor no perder el tiempo en aprenderlo ya que la curva de aprendizaje es jodida, pero bueno a mi me enseñaron poco a poco y ahora tambien soy un vi-adicto.

    Un saludo.
    Linux Abuser.

  9. #9
    Vive aquí Avatar de Dulce angustiA
    Ubicación
    BCN
    Edad
    35
    Mensajes
    984

    Predeterminado Re: Configuracion /etc/sudoers

    En primer lugar, muchisimas gracias a toyluis por la currada que se ha metido para hacer un minitutorial. No obstante y, a decir verdad, me da hasta rabia decirlo, con incluir el usuario en el grupo 'admin' bastaba ya que la última linea de mi /etc/sudoers hace que cualquier miembro del grupo 'admin' tenga los mismos derechos que root, pudiendo ejecutar cualquier comando sin introducir contraseña, únicamente introduciendo 'sudo' antes del comando. La verdad es que pensaba que ya estaba en el grupo admin... U_U.

    Lo de !authenticate no lo había visto todavía, quizás sea eso lo que realmente hace falta para que funcione el tema como a mí me interesa. Lo de NOPASSWD y ALL=(ALL) ALL ya lo hice como se pudo ver pero no servía de nada. Es por eso por lo que pedía ayuda: lo hice pero no surgía efecto.

    Yo también he leído mucho que vi es el editor de editores y ciertamente es complicado de usar. De todas formas y como siempre, se va aprendiendo sobre la marcha (aún recuerdo cuando no sabía ni como salir, ni como escribir, ni como guardar...xD). Para visudo la gracia de usar vi en lugar de otro editor parece ser que es que analiza la corrección sintáctica. No estoy seguro si al cambiar el editor sigue comprobándolo. De tus líneas, toyluis, extraigo que sí; ¿es así?

    Lo dicho, muchas gracias por tus apuntes. Sin duda han sido de utilidad y, sobre todo, para aprender varias cosas nuevas. Se agradece mucho esta dedicación. Ahora, que disfrutes de tus vacaciones..xD.



    EDITO: ¡MENTÍ! No me pedía password porque tenía al final una línea: dulceangustia ALL=NOPASSWD: ALL en lugar de la combinación que tenía en el fichero que presenté al principio. Digamos que la forma correcta es como explica toyluis, pues coincide con la configuración resultante y correcta.

    Conclusión:

    Código:
    # /etc/sudoers
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the man page for details on how to write a sudoers file.
    #
    
    Defaults	env_reset
    
    # Uncomment to allow members of group sudo to not need a password
    # %sudo ALL=NOPASSWD: ALL
    
    # Host alias specification
    
    # User alias specification
    
    # Cmnd alias specification
    
    # User privilege specification
    root	ALL=(ALL) ALL
    
    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL
    
    # No password requierement for dulceangustia
    dulceangustia ALL=NOPASSWD: ALL
    1. Al pertenecer mi usuario (dulceangustia) al grupo admin, puedo lanzar cualquier ejecutable (como el usuario root y cualquier otro usuario en el grupo admin).

    2. No se me requerirá password al lanzar cualquier ejecutable.

    3. Para que esto tenga efecto debo lanzarlos con el 'prefijo' sudo, de manera que el sistema acuda al fichero /etc/sudoers, analice las reglas establecidas en el mismo y las aplique a la ejecución.


    Ale, parece que está arreglado. Aprovecho para volver a agradecer a toyluis su currada.
    Última edición por Dulce angustiA; 01/09/2008 a las 09:37 Razón: Se me fue la olla...

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •