Como criar aplicativos sem privilégios de sudo?


15

O que eu preciso para 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 apenas sinto que é um risco de segurança ter que dar ao usuário acesso a partes do sistema que talvez não sejam necessárias para criar um aplicativo.

Respostas:


40

Se seus usuários usam

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

Ou para projetos 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 poderão executar o programa da seguinte maneira:

/home/user/opt/bin/program

Se você deseja que eles possam executar os programas simplesmente usando o nome (sem caminho completo), é necessário adicionar /home/user/opt/binà variável de ambiente do caminho, edite os usuários .profile e adicione a seguinte linha:

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

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


Outros usuários poderão usar programas instalados assim se fornecerem o caminho completo e as permissões estiverem definidas adequadamente; e parece que o umask padrão permite isso na instalação da minha área de trabalho.
Alistair Buxton

A base de código que eu estava compilando tinha uma Makefileconfiguração, mas não a configurada; eu entrei nela e mudei a prefix = /some/pathlinha para o meu próprio diretório home (sem barra) e depois executei make installsem o sudo - tudo funcionando agora, então obrigado.
Big Rich

8

Os usuários podem criar aplicativos sem direitos sudo. O único momento em que você precisa de direitos sudo é quando deseja instalar algo nos diretórios do sistema.

./configuree maketrabalhe sempre sem direitos sudo. make installgeralmente precisa de direitos sudo porque instalará o aplicativo /usr/localou /usr(às vezes /opt).

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


Eu ainda acho que sua resposta não está completamente completa. Por que ./configuree maketrabalhar sempre sem sudo? Como devo justificar a alguém que continua executando, sudo make installpor exemplo?
Nikos Alexandris

0

Além do que o txwikinger disse, você pode verificar também fakeroot, o que oferece uma oportunidade para a criação de pacotes .deb dpkgsem a necessidade de privilégios elevados. Obviamente, a instalação desses geralmente precisará de acesso ao sudo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.