Mailinglist Archive: opensuse-es (1502 mails)

< Previous Next >
Re: [opensuse-es] Configuración de sudo
  • From: "Ciro Iriarte" <cyruspy@xxxxxxxxx>
  • Date: Fri, 17 Oct 2008 22:54:23 -0400
  • Message-id: <a998a0140810171954u563f073fu63b7cc4779215c2@xxxxxxxxxxxxxx>
El día 17 de octubre de 2008 17:24, RŌNIN <correo.cuervo@xxxxxxxxx> escribió:
Hola a tod@s:

Escenario:

Se ingresa con un usuario genérico (usuariox) al sistema , luego se
requiere que el usuario1 cambie para sí el propietario de un archivo,
para tal efecto se invoca el sudo:

usuariox@testserver:~$su usuario1 chown usuario1 nombre_archivo

Esto es lo que tengo en /etc/sudoers del sistema remoto (donde se
requiere que se efectúen los cambios):

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 OPERADORES=usuario1,usuario2,usuario3
# Cmnd alias specification
Cmnd_Alias CAMBIAR=/usr/bin/chown
# User privilege specification
root ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

OPERADORES ALL=(ALL) CAMBIAR

Y no he logrado hacerlo funcionar .... :'-(

Ya he intentado seguir las instrucciones de varios manuales/páginas
pero no he logrado que funcione tal como quiero ... así que acudo
nuevamente a solicitar su ayuda.

Cordialmente,


Cuervo Linuxero

Hmm, la verdad es que la solución es algo hedionda porque un usuario
podría realizar el cambio de permisos mientras que otro esta
modificando el archivo....

Para hacer funcionar sudo:

* Comenta "Defaults targetpw" en /etc/sudoers (en caso de que este)
* Cambia la regla a "OPERADORES ALL=(root) CAMBIAR"
* Ejecución de cambio de permiso: "sudo chown usuario /path/al/archivo"

No esta clara la imagen global de la solución, podrían usar SVN y
lockfiles a ese nivel...

Si no hay repositorios de por medio, lo ideal sería crear un script
que llame al IDE o editor y utilizar lockfiles para asegurarse de no
modificar concurrentemente un archivo. Con todos los archivos
pertenecientes a un grupo comun a los usuarios q deben modificarlos.

-------editar.sh--------
#!/bin/bash -u

LOCKFILE=${1}.lock

if [ ! -e $LOCKFILE ]; then
echo "$$;$USER" > $LOCKFILE
trap "rm -f $LOCKFILE; exit" INT TERM EXIT
vi ${1}
rm $LOCKFILE
trap - INT TERM EXIT
else
echo "El archivo esta siendo editado por $(cat ${LOCKFILE}|cut -f2 -d ";")"
fi
---------------------------

Si todos los usuarios modifican archivos mediante "editar.sh
/mi/archivo" se evitarian modificaciones concurrentes...

Saludos,
Ciro
< Previous Next >
Follow Ups
References