web-dev-qa-db-fra.com

Comment construire une application sans privilèges Sudo?

De quoi ai-je besoin pour installer sur un serveur Ubuntu 9.10 afin qu'un utilisateur puisse créer les applications de son choix (c'est-à-dire ./configure, make && make install) sans avoir besoin des privilèges Sudo/admin.

Je pense que c'est un peu un risque pour la sécurité de donner à un utilisateur l'accès à des parties du système dont il n'a peut-être pas besoin pour créer une application.

11
RC1140

Si vos utilisateurs utilisent

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

Ou pour des projets cmake

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

Cela installera le programme dans ce préfixe (au lieu du répertoire par défaut/usr/local /) et vos utilisateurs devraient alors pouvoir exécuter le programme comme ceci:

/home/user/opt/bin/program

Si vous voulez qu'ils puissent exécuter les programmes simplement en utilisant le nom (sans chemin complet), vous devez ajouter /home/user/opt/bin à la variable d'environnement path, éditez le fichier .profile de l'utilisateur et ajoutez la ligne suivante:

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

Notez que les programmes installés de cette manière seront privés pour l'utilisateur spécifique, mais c'est une façon de le faire

36
LassePoulsen

Les utilisateurs peuvent créer des applications sans droits Sudo. Les droits Sudo ne sont nécessaires que lorsque vous souhaitez installer quelque chose dans les répertoires système.

./configure et make fonctionnent toujours sans droits Sudo. make install a généralement besoin des droits Sudo car il installera l'application sur /usr/local ou /usr (parfois /opt).

Toutefois, si vous modifiez le préfixe du chemin d’installation (./configure --prefix=~/usr/local) de manière à ce que l’installation soit effectuée dans l’arborescence du répertoire de base de l’utilisateur, aucun droit Sudo n’est nécessaire pour make install.

8
txwikinger

En ajoutant à ce que txwikinger a dit, vous voudrez peut-être aussi vérifier fakeroot, ce qui permet de créer des paquets .deb avec dpkg sans avoir besoin de privilèges élevés. Bien sûr, l'installation de ceux-ci nécessitera généralement un accès à Sudo.

0
mindcorrosive