¿Cómo construir una aplicación sin privilegios de sudo?

15

¿Qué necesito configurar en un servidor Ubuntu 9.10 para que un usuario pueda crear aplicaciones de su elección (es decir, / configurar, hacer y hacer instalar) sin la necesidad de privilegios sudo / admin.

Simplemente siento que es un riesgo de seguridad tener que dar a un usuario acceso a partes del sistema que podrían no necesitar para crear una aplicación.

RC1140
fuente

Respuestas:

40

Si sus usuarios usan

./configure --prefix=/home/user/opt/

O para proyectos de cmake

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

Esto instalará el programa en ese prefijo (en lugar del predeterminado / usr / local /) y sus usuarios deberían poder ejecutar el programa así:

/home/user/opt/bin/program

Si desea que puedan ejecutar los programas simplemente usando el nombre (sin la ruta completa) que necesita agregar /home/user/opt/bina la variable de entorno de ruta, edite el perfil de usuario y agregue la siguiente línea:

export PATH=/home/user/opt/bin:$PATH

Tenga en cuenta que los programas instalados de esta manera serán privados para el usuario específico, pero es una forma de hacerlo.

LassePoulsen
fuente
Otros usuarios podrán usar programas instalados de esta manera si proporcionan la ruta completa y los permisos se configuran adecuadamente; y parece que la umask predeterminada permite esto en mi instalación de escritorio.
Alistair Buxton
La base de código que estaba compilando tenía una Makefileconfiguración pero no una configuración, simplemente entré y cambié la prefix = /some/pathlínea a mi propio directorio de inicio (sin barra diagonal) y luego corrí make installsin sudo, todo funciona ahora, así que gracias.
Big Rich
8

Los usuarios pueden crear aplicaciones sin derechos de sudo. El único momento en que necesita derechos de sudo es cuando desea instalar algo en los directorios del sistema.

./configurey maketrabajar siempre sin derechos de sudo. make installgeneralmente necesita derechos de sudo porque instalará la aplicación en /usr/localo /usr(a veces /opt).

Sin embargo, si cambia el prefijo para la ruta de instalación (es decir ./configure --prefix=~/usr/local) de una manera que la instalación se realizará dentro del árbol del directorio de inicio del usuario, no se necesitan derechos de sudo make install.

txwikinger
fuente
Sigo pensando que tu respuesta no está completamente respaldada. ¿Por qué hacer ./configurey maketrabajar siempre sin sudo? ¿Cómo debo justificarlo ante alguien que sigue ejecutando, sudo make installpor ejemplo?
Nikos Alexandris
0

Además de lo que txwikinger ha dicho, es posible que desee verificar también fakeroot, lo que brinda la oportunidad de crear paquetes .deb dpkgsin necesidad de privilegios elevados. Por supuesto, la instalación de esos generalmente necesitará acceso a sudo.

mente corrosiva
fuente