10.6 Los permisos y las ordenes cp, mv y rm

Cuando se usa el comando cp para copiar un fichero y el fichero destino no existe, los permisos del fichero fuente son copiados tambien. Esto incluye los permisos SUID y SGID. Es decir, los permisos del destino serán iguales a los del fichero fuente, salvo si la mascara por omision que tenemos definida para nuestros ficheros es diferente (mas restrictiva). En cuyo caso le quitará aquellos permisos que se indiquen en esta mascara predeterminada.

Resulta particularmente peligroso copiarnos un programa perteneciente a otro usuario que tenga activado el bit SUID, puesto que la copia tambien tendrá activado este bit y nos pertenecerá.

Cuando el fichero de destino existe, sus permisos no cambia. El contenido del fichero fuente se copia en el destino (suponiendo, por supuesto, que el fichero tiene permiso de escritura para el usuario que de la orden cp).

Para poder copiar un fichero, éste debe tener el permiso de lectura activado.

Cuando usamos este comando para mover un fichero los permisos no cambian. La orden mv simplemente simplemente cambia el nombre del fichero, no su contenido ni sus permisos.

A diferencia de cp, mv no cambia el propietario del fichero si el fichero fuente y destino residen en el mismo sistema de ficheros. Si los ficheros están en sistemas de ficheros separados, mv copiará el fichero (cambiandolo de propietario) y borrará el fichero original.

Para poder mover un fichero debemos tener permiso de escritura en el directorio donde está catalogado, los permisos del fichero no influyen en la operación.

Cuando se borra un fichero que tiene el permiso SUID activado hay que asegurarse de que solo tenga un enlace, ya que cuando se borra el fichero lo que se va borrando son los distintos enlaces. Si borramos un fichero con SUID y existe un enlace al mismo en otro directorio, el fichero sigue existiendo: para asegurarnos de que nadie lo pueda usar lo que podemos hacer es cambiar los permisos (quitarle SUID antes de borralo), ya que al cambiar los permisos de un fichero cambian los de todos sus enlaces.

Para borrar un fichero no influyen los permisos del propio fichero, debemos tener permiso de escritura en el directorio donde este catalogado.