¿Cómo puedo configurar el archivo para que sea ejecutable solo para otros usuarios pero no legible / editable? La razón de esto es que estoy ejecutando algo con mi nombre de usuario pero no quiero dar la contraseña. Lo intenté :
chmod 777 testfile
chmod a=x
chmod ugo+x
Todavía obtengo permiso denegado cuando ejecuto como otro usuario.
linux
security
permissions
executable
c0mrade
fuente
fuente
Respuestas:
Necesita permisos de lectura y ejecución en un script para poder ejecutarlo. Si no puede leer el contenido del script, tampoco podrá ejecutarlo.
fuente
Hay una verdad a medias en las declaraciones anteriores. Puede configurar una secuencia de comandos para que el usuario no pueda leerla, pero aún sea ejecutable. El proceso es un poco prolongado, pero se puede hacer haciendo una excepción en / etc / sudoer para que el usuario pueda ejecutar el script como usted temporalmente sin que se le solicite una contraseña. Ejemplo a continuación:
Algunas secuencias de comandos que quiero compartir con un usuario:
Cree un script de shell que llame a 'somescript.pl' y guárdelo en / bin /:
PASO OPCIONAL Haga un enlace simbólico a somescript.sh en / bin /:
Asegúrese de que el script de shell sea legible / ejecutable para el usuario (sin acceso de escritura):
Haga una excepción en / etc / sudoer agregando estas líneas:
PRUEBA EN EL PUDIN:
Este método debe ser mejor que intentar confundir con
Filter::Crypto
oPAR::Filter::Crypto
oAcme::Bleach
que puede ser revertida por ingeniería por un usuario determinado. Lo mismo vale para compilar su script en binario. Avísame si encuentras algo mal con este método. Para usuarios más avanzados, es posible que desee eliminar la sección User_Alias por completo y reemplazar SCRIPTUSER con '% groupname'. De esta manera puede administrar sus usuarios de script conusermod
comando.fuente
Si deja que otros usuarios ejecuten un programa, pueden saber todo lo que el programa está haciendo, ya sea que el archivo del programa sea legible o no. Todo lo que necesitan hacer es señalar un depurador (o un programa similar a un depurador
strace
). Un ejecutable binario puede ejecutarse si es ejecutable y no es legible (un script no puede, porque el intérprete necesita poder leer el script), pero esto no le brinda ninguna seguridad.Si desea que otros puedan ejecutar su programa como una caja negra, sin dejar que vean exactamente lo que está haciendo el programa, debe otorgarle privilegios elevados a su script: configúrelo para su usuario. Solo root puede usar herramientas de depuración en programas setuid. Tenga en cuenta que escribir programas setuid seguros no es fácil y la mayoría de los idiomas no son adecuados; vea Permitir setuid en scripts de shell para más explicaciones. Si va a escribir un programa setuid, le recomiendo encarecidamente Perl, que tiene un modo (modo taint) que tiene la intención explícita de hacer posibles los scripts setuid seguros.
fuente
Puede establecer permisos de archivo con el comando chmod. Tanto el usuario root como el propietario del archivo pueden establecer permisos de archivo. chmod tiene dos modos, simbólico y numérico.
Primero, usted decide si establece permisos para el usuario (u), el grupo (g), otros (o) o los tres (a). Luego, agregue un permiso (+), elimínelo (-) o elimine los permisos anteriores y agregue uno nuevo (=). Luego, usted decide si establece el permiso de lectura (r), el permiso de escritura (w) o el permiso de ejecución (x). Por último, le dirá a chmod qué permisos de archivo desea cambiar.
Aquí están algunos ejemplos.
Elimine todos los permisos pero agregue permisos de lectura para todos:
Después del comando, los permisos del archivo serían -r - r - r--
Agregue permisos de ejecución para el grupo:
Ahora, los permisos del archivo serían -r - r-xr--
Agregue permisos de escritura y ejecución para el propietario del archivo. Observe cómo puede establecer más de un permiso al mismo tiempo:
Después de esto, los permisos del archivo serán -rwxr-xr--
Elimine el permiso de ejecución tanto del propietario como del grupo del archivo. Tenga en cuenta, nuevamente, cómo puede configurarlos a la vez:
Ahora, los permisos son -rw-r - r--
Esta es una referencia rápida para configurar permisos de archivos en modo simbólico:
fuente
chmod
. Esto no responde la pregunta.