${permisos/perm_actual/}
elimina la cadena literal perm_actual
del valor de la variable, creo que quiere ${permisos/$perm_actual/}
en su lugar.
Pero podría usar permisos=${permisos//[^rwx]}
en lugar del bucle para eliminar todos los caracteres que no sean-rwx
de una sola vez, y [[ $permisos = *[^rwx]* ]]
para verificar si la variable tiene alguno de ellos.
(Tanto ${foo//bar}
como [[.. ]]
son extensiones no estándar, pero ya las usó, por lo que probablemente esté ejecutando Bash/ksh/zsh.)