Como construir aplicativo sem privilégios sudo?

8

O que eu preciso configurar em um servidor Ubuntu 9.10 para que um usuário possa criar aplicativos de sua escolha (ou seja, ./configure, make & amp; make install) sem a necessidade de privilégios sudo / admin.

Sinto que é um risco de segurança ter que dar ao usuário acesso a partes do sistema que talvez não precisem para criar um aplicativo.

    
por RC1140 13.08.2010 / 15:02

3 respostas

28

Se seus usuários usarem

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

Ou para projetos de cmake

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

Isto irá instalar o programa nesse prefixo (ao invés do padrão / usr / local /) e seus usuários devem poder rodar o programa assim:

/home/user/opt/bin/program

Se você quiser que eles sejam capazes de executar os programas simplesmente usando o nome (sem caminho completo), você precisa adicionar /home/user/opt/bin à variável de ambiente path, editar os usuários .profile e adicionar a seguinte linha:

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

Note que os programas instalados desta forma serão privados para o usuário específico, mas é uma maneira de fazê-lo

    
por LassePoulsen 13.08.2010 / 15:17
7

Os usuários podem criar aplicativos sem direitos de sudo. A única vez que você precisa de direitos sudo é quando você quer instalar algo nos diretórios do sistema.

./configure e make funcionam sempre sem direitos de sudo. make install normalmente precisa de direitos sudo porque instalará o aplicativo em /usr/local ou /usr (às vezes /opt ).

No entanto, se você alterar o prefixo do caminho de instalação (ou seja, ./configure --prefix=~/usr/local ) de forma que a instalação seja executada dentro da árvore de diretórios base do usuário, nenhum direito sudo será necessário para make install .

    
por txwikinger 13.08.2010 / 15:16
0

Adicionando ao que txwikinger disse, você pode querer verificar também fakeroot , que dá uma oportunidade para construir pacotes .deb com dpkg sem precisar de privilégios elevados. Claro, instalá-los geralmente precisará de acesso ao sudo.

    
por mindcorrosive 16.08.2010 / 21:52