ti-enxame.com

Como construir aplicativos sem privilégios do Sudo?

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

Eu 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.

8
RC1140

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/

Isso instalará o programa nesse prefixo (em vez do padrão/usr/local /) e seus usuários devem poder executar o programa da seguinte forma:

/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 fazer isso

33
LassePoulsen

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

./configure e make funcionam sempre sem direitos Sudo. make install normalmente precisa dos 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 (por exemplo, ./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.

8
txwikinger

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 que a instalação desses geralmente exigirá acesso ao Sudo.

0
mindcorrosive