Wie erstelle ich eine Anwendung ohne sudo-Rechte?


14

Was muss ich auf einem Ubuntu 9.10-Server einrichten, damit ein Benutzer Anwendungen seiner Wahl erstellen kann (dh ./configure, make && make install), ohne sudo / admin-Berechtigungen zu benötigen?

Ich halte es nur für ein Sicherheitsrisiko, einem Benutzer Zugriff auf Teile des Systems zu gewähren, die er möglicherweise nicht benötigt, um eine App zu erstellen.

Antworten:


39

Wenn Ihre Benutzer verwenden

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

Oder für cmake-Projekte

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

Dadurch wird das Programm in diesem Präfix installiert (anstelle des Standards / usr / local /) und Ihre Benutzer sollten dann in der Lage sein, das Programm wie folgt auszuführen:

/home/user/opt/bin/program

Wenn Sie möchten, dass sie die Programme einfach unter Verwendung des Namens (ohne vollständigen Pfad) ausführen können, müssen Sie /home/user/opt/binder Umgebungsvariablen path hinzufügen , das Benutzerprofil bearbeiten und die folgende Zeile hinzufügen:

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

Beachten Sie, dass Programme, die auf diese Weise installiert werden, für den jeweiligen Benutzer privat sind. Dies ist jedoch eine Möglichkeit, dies zu tun


Andere Benutzer können Programme verwenden, die auf diese Weise installiert wurden, wenn sie den vollständigen Pfad angeben und die Berechtigungen entsprechend festgelegt sind. und es scheint, dass die Standard-Umask dies auf meinem Desktop-Installation ermöglicht.
Alistair Buxton

Die Codebasis, die ich kompilierte, hatte eine, Makefileaber keine Konfiguration. Ich habe einfach darauf zugegriffen und die prefix = /some/pathZeile in mein eigenes Basisverzeichnis geändert (kein abschließender Schrägstrich) und dann make installohne sudo ausgeführt - alles funktioniert jetzt, also danke.
Big Rich

8

Benutzer können Anwendungen ohne Sudo-Rechte erstellen. Das einzige Mal, wenn Sie Sudo-Rechte benötigen, ist, wenn Sie etwas in die Systemverzeichnisse installieren möchten.

./configureund makearbeiten immer ohne sudo rechte. make installBenötigt normalerweise sudo-Rechte, da die Anwendung auf /usr/localoder /usr(manchmal /opt) installiert wird .

Wenn Sie jedoch das Präfix für den Installationspfad (dh ./configure --prefix=~/usr/local) so ändern , dass die Installation innerhalb des Basisverzeichnisbaums des Benutzers ausgeführt wird, sind für keine Sudo-Rechte erforderlich make install.


Ich denke immer noch, dass Ihre Antwort nicht vollständig gesichert ist. Warum tun ./configureund makearbeiten immer ohne sudo? Wie soll ich es jemandem rechtfertigen, der sudo make installzum Beispiel weiterhin ausführt ?
Nikos Alexandris

0

Zusätzlich zu dem, was txwikinger gesagt hat, möchten Sie vielleicht auch prüfen fakeroot, was die Möglichkeit bietet, .deb-Pakete zu erstellen , dpkgohne erhöhte Berechtigungen zu benötigen. Für die Installation dieser Programme ist in der Regel ein sudo-Zugriff erforderlich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.