El día 17 de octubre de 2008 17:24, RŌNIN
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