it-swarm.it

Come creare un'applicazione senza i privilegi di Sudo?

Cosa devo installare su un server Ubuntu 9.10 in modo che un utente possa creare applicazioni di propria scelta (ad esempio ./configure, make && make install) senza la necessità di privilegi di Sudo/admin.

Sento che è un po 'un rischio per la sicurezza dover dare a un utente l'accesso a parti del sistema di cui potrebbe non aver bisogno per creare un'app.

11
RC1140

Se i tuoi utenti usano

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

O per progetti di cmake

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

Questo installerà il programma in quel prefisso (invece che nel predefinito/usr/local /) e i tuoi utenti dovrebbero quindi essere in grado di eseguire il programma in questo modo:

/home/user/opt/bin/program

Se vuoi che siano in grado di eseguire i programmi semplicemente usando il nome (senza percorso completo) devi aggiungere /home/user/opt/bin alla variabile d'ambiente path, modificare il file .prof degli utenti e aggiungere la seguente riga:

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

Nota che i programmi installati in questo modo saranno privati ​​per l'utente specifico, ma è un modo per farlo

36
LassePoulsen

Gli utenti possono creare applicazioni senza i diritti di Sudo. L'unica volta in cui hai bisogno dei diritti di Sudo è quando vuoi installare qualcosa nelle directory di sistema.

./configure e make funzionano sempre senza diritti Sudo. make install di solito necessita dei diritti Sudo perché installerà l'applicazione su /usr/local o /usr (a volte /opt).

Tuttavia, se si modifica il prefisso per il percorso di installazione (ovvero ./configure --prefix=~/usr/local) in modo che l'installazione venga eseguita nella struttura della directory home dell'utente, non sono necessari diritti Sudo per make install.

8
txwikinger

Aggiungendo ciò che txwikinger ha detto, potresti voler controllare anche fakeroot, che offre l'opportunità di creare pacchetti .deb con dpkg senza bisogno di privilegi elevati. Naturalmente, l'installazione di questi avrà generalmente bisogno dell'accesso Sudo.

0
mindcorrosive