Bagaimana cara membangun aplikasi tanpa hak sudo?

15

Apa yang harus saya siapkan pada server Ubuntu 9,10 sehingga pengguna dapat membangun aplikasi yang ada di sana (mis ./configure, make && make install) tanpa perlu hak istimewa sudo / admin.

Saya hanya merasa sedikit risiko keamanan karena harus memberi pengguna akses ke bagian-bagian sistem yang mungkin tidak mereka perlukan untuk membangun aplikasi.

RC1140
sumber

Jawaban:

40

Jika pengguna Anda menggunakan

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

Atau untuk proyek cmake

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

Ini akan menginstal program dalam awalan itu (bukan default / usr / local /) dan pengguna Anda kemudian dapat menjalankan program seperti ini:

/home/user/opt/bin/program

Jika Anda ingin mereka dapat menjalankan program hanya dengan menggunakan nama (tanpa path lengkap) Anda perlu menambahkan /home/user/opt/binke variabel lingkungan path, edit pengguna .profile dan tambahkan baris berikut:

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

Perhatikan bahwa program yang dipasang dengan cara ini akan bersifat pribadi untuk pengguna tertentu, tetapi ini adalah cara untuk melakukannya

LassePoulsen
sumber
Pengguna lain akan dapat menggunakan program yang diinstal seperti ini jika mereka menyediakan path lengkap dan izin ditetapkan dengan tepat; dan tampaknya umask default memungkinkan ini pada instalasi desktop saya.
Alistair Buxton
Basis kode yang saya kompilasi memiliki Makefiletetapi tidak ada konfigurasi, saya hanya pergi ke dalamnya dan mengubah prefix = /some/pathbaris ke direktori home saya sendiri (tanpa trailing slash) dan kemudian berlari make installtanpa sudo - semuanya bekerja sekarang, jadi terima kasih.
Big Rich
8

Pengguna dapat membangun aplikasi tanpa hak sudo. Satu-satunya saat Anda memerlukan hak sudo adalah ketika Anda ingin menginstal sesuatu ke direktori sistem.

./configuredan makebekerja selalu tanpa hak sudo. make installbiasanya memerlukan hak sudo karena akan menginstal aplikasi ke /usr/localatau /usr(kadang-kadang /opt).

Namun, jika Anda mengubah awalan untuk jalur instalasi (yaitu ./configure --prefix=~/usr/local) dengan cara instalasi akan dilakukan di dalam pohon direktori home pengguna, tidak ada hak sudo diperlukan untuk make install.

txwikinger
sumber
Saya masih berpikir bahwa jawaban Anda tidak sepenuhnya didukung. Mengapa selalu bekerja ./configuredan makebekerja tanpa ? Bagaimana saya harus membenarkannya kepada seseorang yang terus mengeksekusi misalnya? sudosudo make install
Nikos Alexandris
0

Menambah apa yang dikatakan txwikinger , Anda mungkin ingin memeriksanya juga fakeroot, yang memberi peluang untuk membangun paket .deb dengan dpkgtanpa perlu hak istimewa yang tinggi. Tentu saja, menginstalnya biasanya membutuhkan akses sudo.

mindcorrosive
sumber