Permiso para modificar un archivo solo con un script?

Hola tengo un archivo que no puede ser modificado ni leído por los usuarios. Pero estos usuarios pueden ejecutar un script donde este si puede modificar este archivo. Con que herramienta se puede llevar a cabo?

Un Saludo
mmmm... sino recuerdo mal, con cambiar los permisos del script debería de valer, chmod +s /fichero

chmod [-R][ugo][+/- rwxs] fichero ---- Cambia los permisos de acceso de un fichero
    |
    |+: da permisos -: quita permisos
    |u: propietario  R: recursivo       
    |g: grupo        r: lectura          ejemplo: chmod +x fichero ,es lo mismo que: chmod a+x fichero 
    |o: otros        w: escritura        explicación: a es la opción por defecto.                   
    |a: todos        x: ejecución
    |
    |s: los atributos suid y sgid,otorgan a un "fichero" los permisos de su dueño o
    |   grupo respectivamente,cada vez que se ejecute,sea quien sea el que lo ejecute.
    |   Ejemplo: chmod +s /usr/bin/cdrecord
    |------------------------------------------------------
    |Cómo afectan los permisos  a los directorios:
    |r permite ver su contenido(no el de sus ficheros)
    |w permite añadir o eliminar ficheros (no modificarlos)
    |x permite acceder al directorio.


Por ejemplo, si te fijas en el programa passwd (para cambiar la contraseña) que escribe en el fichero /etc/shadow (donde se almacenan las contraseñas, el cual el usuario no tiene acceso), gracias al atributo s, te permite modificar el fichero /etc/shadow.
Lo puedes hacer fácilmente con sudo. Simplemente asegúrate de que los permisos no permiten que tus usuarios lean o escriban en el fichero en cuestión y luego permites la ejecución de tu script al grupo de usuarios que quieras en el fichero de sudoers. (Suponiendo que estamos hablando de Linux, sino ni idea).
muchas gracias a los dos, me ha resultado muy útil

un saludo!
Utiliza mejor sudo antes que SUIDs.
4 respuestas