Los permisos se otorgan con chmod
chmod fichero
En linux un ficero tiene tres bloques de permisos, el primero para el propietario, el segundo para el grupo al que pertenece éste, y el tercero para todos los demás.
Cada bloque se compone de un bit de lectura (r), otro de escritura (w) y un tercero de ejecución (x), que si se refiere a un directorio corresponde al permiso para cambiar a él.
Por ejemplo, si un fichero tiene como permisos rwxr-xr-- significa que puede ser leido, modificado y ejecutado por su propietario, leido y ejecutado, pero no modificado, por los miembros de su grupo, y solo leido por el resto de los usuarios. Si fuera rwxrwxrwx, significa que puede ser leido, modificado y ejecutado por cualquiera.
En cada bloque, se le da el valor 4 a r, 2 a w y 1 a x. De esta manera, se componen numeros en octal para asignar los permisos.
Por ejemplo, en el primer caso
4+2+1=7
4+1=5
4
El numero que habría que asignar para otorgar esos permisos sería 754, asi que si el fichero se llamara script.sh, hariamos
chmod 754 script.sh
En el segundo caso, el valor sería 777.
Para cambiar los permisos es mejor que lo hagas con sudo. En el ejemplo, sudo chmod 754 script.sh. Te evitaras problemas, porque solo puedes dar los permisos que tienes. Es decir, si dado un fichero que tu no has creado no tiene permiso de escritura para el propietario, no podras darselo mas que con el usuario con que lo has creado, o con root.