19

What do I need to setup on a Ubuntu 9.10 server so that a user can build applications of there choice (i.e. ./configure , make && make install) with out the need for sudo/admin privileges.

I just feel its a bit of a security risk having to give a user access to parts of the system they might not need in order to build a app.

3 Answers 3

44

If your users use

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

Or for cmake projects

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

This will install the program in that prefix (instead of the default /usr/local/) and your users should then be able to run the program like this:

/home/user/opt/bin/program

If you want them to be able to run the programs by simply using the name (without full path) you need add /home/user/opt/bin to the path environment variable, edit the users .profile and add the following line:

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

Note that programs installed in this way will be private to the specific user, but it's a way to do it

2
  • Other users will be able to use programs installed like this if they supply the full path and the permissions are set appropriately; and it appears that the default umask allows this on my desktop install. Mar 21, 2011 at 3:07
  • The codebase I was compiling had a Makefile but no configure, I just went into it and changed the prefix = /some/path line to my own home directory (no trailing slash) and then ran make install without sudo - all working now, so thanks.
    – Big Rich
    Sep 25, 2018 at 16:00
8

Users can build applications without sudo rights. The only time you need sudo rights is when you want to install something into the system directories.

./configure and make work always without sudo rights. make install usually needs sudo rights because it will install the application to /usr/local or /usr (sometimes /opt).

However, if you change the prefix for the installation path (i.e. ./configure --prefix=~/usr/local) in a way that the installation will be perform inside the user's home directory tree, no sudo rights are needed for make install.

1
  • 1
    I still think that your answer isn't completely backed up. Why do ./configure and make work always without sudo? How should I justify it to someone who keeps executing sudo make install for example? Nov 21, 2012 at 7:45
0

Adding to what txwikinger has said, you might want to check also fakeroot, which gives an opportunity for building .deb packages with dpkg without needing elevated privileges. Of course, installing those will generally need sudo access.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .