
Quería instalar cierto software. El paquete tenía muchos archivos, incluidos algunos archivos de scripts de shell. Inicialmente tuve que seleccionar algunos archivos y luego hacerlo ejecutable:
chmod 777 shellscr1
pero luego me di cuenta de que hay muchos archivos de este tipo que tendré que convertir en ejecutables. Entonces, como atajo, hice esto:
chmod 777 *
y ahora todos los archivos son ejecutables.
¿Hay consecuencias graves por hacer esto (aparte de la seguridad)?
Respuesta1
Dependiendo del programa, es posible que no tenga efectos negativos o que inutilice el software.
Por ejemplo, cambie los permisos de su directorio ~/.ssh y vea qué error obtiene cuando intenta realizar ssh en otra máquina.
Algunos programas acceden a los archivos de configuración como un usuario específico. con permisos 777, cualquiera podría sobrescribir el archivo haciendoa ellosel propietario del archivo.
Respuesta2
Como señalaron otros, no hay ninguna razón (al menos no presentada en la pregunta) por la cual los archivos deban poder escribirse en todo el mundo. Algo como chmod 755 *
o chmod +x *
debería ser suficiente.
Sin embargo, limitaré aún más la respuesta y les daré una respuesta queexactamentelo que estás pidiendo. Siempre se espera que un script de shell comience con unel asuntocomo
#!/usr/bin/env bash
Así que aquí hay un fragmento que buscará cualquier archivo en el directorio actual comenzando con los caracteres #!/
y los convertirá en ejecutables. En otras palabras, este comando sólo marcará como ejecutables aquellos archivos que parezcan scripts de shell.
for file in *; do [ "$(head -c 3 "$file")" = '#!/' ] && chmod +x "$file"; done;
Respuesta3
Aparte de la seguridad, no hay consecuencias graves. (hablando lógicamente por supuesto)
Respuesta4
Inicialmente tuve que seleccionar algunos archivos y luego hacerlo ejecutable:
chmod 777 shellscr1
Hacerlos ejecutables no significa777, significa755. Al menos puedes cambiar esto, por razones obvias relacionadas con la seguridad.
Hacer ejecutables los scripts de shell ocasionalmente puede tener algunos efectos adversos. Por ejemplo, si su/bin/shapunta a un shell diferente al que está destinado el script, puede hacerlo esencialmente inutilizable. Un buen programador habría tomado medidas para evitarlo y, al cambiar los permisos, es posible que haya anulado sus esfuerzos.
Pero, repito, esto se aplica sólo si su /bin/sh apunta a un shell no estándar.