Pregunta

Así que tengo un pequeño problema Linux, caramba que va a enseñarme a pasar tantos años en Windows. De todos modos lo hice una pequeña aplicación Java, envuelto muy bien con la secuencia de comandos de Java Service Wrapper, pero cuando corro ese guión:

sh ./wrapper.sh console

consigo permiso denegado de inmediato. El mensaje ha denegado el permiso es así:

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied

Mi pequeño wrapper.sh vive en la carpeta / bin MiApl. El directorio MyApp / bin / envoltura contiene 2 archivos:

  • envoltorio-linux-x86-32
  • envoltorio-linux-x86-64

Como prueba me encontré con el siguiente comando chmod:

chmod a=rwx MyApp -R

comprobé que todo estaba rwx, incluso en las subcarpetas y trató de ejecutar el script de nuevo, con el mismo resultado exacto ... permiso denegado.

Alguien tiene alguna idea de lo que podía probar la próxima para hacer que el bebé corre?

Gracias, Lancelot

¿Fue útil?

Solución

Me acabo de dar cuenta el mensaje de error hace referencia al nombre de la directorio alojamiento de su archivo:

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied

Sabemos que es un directorio ya que ha mencionado "El directorio MyApp / bin / envoltura contiene 2 archivos".

Podría comprobar la secuencia de comandos, por ejemplo, donde se está utilizando el nombre del directorio como un comando? Tales como el uso de la envoltura (que es el nombre del directorio) en lugar de envoltorio / contenedor-linux-x86-32 (que sería un nombre de archivo), o errores similares?

errores similares a menudo aparecen cuando se utiliza espacios en los nombres de archivo y el olvido de citar dicho los nombres de archivo (probablemente no es el caso aquí, sin embargo.)

De no ser así, ¿podría editar su pregunta para incluir el contenido del guión envoltorio que está llamando?

(Nueva respuesta ya que es completamente ajenos a la idea noexec anterior, y que uno puede permanecer como referencia.)

Otros consejos

El sistema de alojamiento de archivos de su script puede ser montado con la bandera noexec. Compruebe su entrada / etc / fstab para que el sistema de archivos y si hay un noexec no intente quitarlo y luego volver a montar ese sistema de archivos a través de mount /path/to/mountpoint -o remount

En el segundo pensamiento, comprobar la salida del comando mount para casos NOEXEC en vez de / etc / fstab (el sistema de archivos podrían haber sido montada de forma dinámica.)

puede que tenga que conceder también la ejecución de scripts en su envoltorio

chmod + x wrapper.sh

EDIT: Acabo de notar que su wrapper.sh se encuentra en la carpeta MyApp / EDIT

También, si u asegúrese de tener

#!/bin/sh

en la parte superior de su archivo .sh, puede ejecutar de esta manera:

.wrapper.sh

En primer lugar, intente abrirlo en un editor de texto, para asegurarse de que tiene acceso de lectura. Si es así, ¿

chmod +x wrapper.sh

Y asegúrese de que ha #!/bin/sh al comienzo de la secuencia de comandos

Puede intentar ejecutar el archivo que estaba allí en el directorio personal del otro usuario, puede dar permiso para el "usuario" usuario

chmod -R a + x / home / user1 o chmod -R o + x / home / user1 chmod -R g + x / home / usuario1

A pesar de que mi problema era un poco diferente a esta pregunta apareció en mi búsqueda par de veces durante la búsqueda de un problema similar, de modo que voy a publicar mis resultados aquí.

Mi problema era que no podía acceder al almacenamiento / carpeta después de comando chmod.

Después de la ejecución de comandos:

sudo chmod -755 storage -R    //notice -755 is wrong, it should be 755

No pude acceder al almacenamiento / carpeta más.

ls -l

He intentado:

permisos de almacenamiento d ---------

También después git status:

almacenamiento / .gitignore: permiso denegado

Después de ejecutar el comando correcto:

sudo chmod 755 storage -R // without -

todo volvió a la normalidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top