Saat memasang aplikasi melalui pusat perangkat lunak atau dengan file DEB, mereka biasanya akan menginstal sistem secara luas untuk semua pengguna.
Apakah ada cara untuk menginstal aplikasi hanya untuk satu pengguna?
Saat memasang aplikasi melalui pusat perangkat lunak atau dengan file DEB, mereka biasanya akan menginstal sistem secara luas untuk semua pengguna.
Apakah ada cara untuk menginstal aplikasi hanya untuk satu pengguna?
Tergantung pada apa yang ingin Anda capai, mungkin ada berbagai cara untuk membuat pekerjaan ini (atau setidaknya memberikan kemiripan fungsionalitas yang Anda inginkan).
Instalasi perangkat lunak dengan berbagai cara dilakukan untuk membuat sumber daya tersedia, atau memungkinkan akses ke hal-hal yang sudah ada pada sistem.
Apakah Anda berbicara tentang pemberian akses ke printer, atau memungkinkan pengguna untuk menjalankan program dalam direktori tertentu, ada beberapa cara untuk mencapai ini, dan meskipun mereka mungkin asli Ubuntu, solusi semacam ini umumnya (tentu saja) akan ditambahkan setelah fakta instalasi deb.
Berikut adalah dua kelas umum kontrol pasca pemasangan yang dapat ditambahkan. Perhatikan bahwa, mengingat lingkungan yang tepat, misalnya ketika kebijakan grup yang dikontrol ketat ada, ini mungkin lebih mudah setelah Anda memiliki sistem dasar di tempat. Izin semacam ini bahkan dapat dikaitkan dengan LDAP atau sistem serupa yang dapat memberikan otentikasi dan otorisasi per-pengguna atau grup.
Kontrol visiblity
Saya sendiri mungkin memiliki situasi yang agak mirip, tetapi dalam kasus saya, para pengguna tidak (belum) sangat canggih (semuanya berusia di bawah 7 tahun). Bagi saya, hanya menyembunyikan menu Gnome dan atau menghapus peluncur desktop berhasil.
Menghapus bit yang dapat dieksekusi dari direktori menghilangkan kemampuan proses untuk mencari atau melintasi mereka. Itu secara efektif dapat membuat mereka tidak terlihat, dan bijaksana, membuat mereka tidak tersedia. Jika Anda memiliki kebijakan sistem default yang membuat menu berdasarkan akses file, misalnya, Anda bisa mendapatkan solusi kosmetik semacam ini, dan kemudian membuatnya berfungsi untuk instalasi selanjutnya dengan sedikit usaha tambahan.
Kontrol pelaksanaan
Kontrol sumber daya dapat dilakukan melalui izin Unix, profil apparmor, izin SELinux, dan sebagainya. Mungkin ada level lain dari filter kontrol yang mungkin ikut bermain tergantung pada aplikasi. Dengan tidak adanya solusi yang lebih bertarget, Anda mungkin harus menulis pembungkus di sekitar program tertentu untuk mengontrol akses pengguna atau proses.
Yah
dpkg
tidak akan membantu Anda karena ini bukan tujuan desainnya. Ia ingin menjadi sensus tunggal yang dimiliki oleh root terhadap paket yang diinstal pada suatu sistem.Satu-satunya hal yang terlintas dalam pikiran adalah mengekstraksi paket dan mencoba menempatkan file secara manual di direktori home.
Namun ini hanya akan bekerja untuk beberapa hal. Banyak paket dibagi menjadi potongan-potongan (executable atau skrip
/usr/bin
, perpustakaan di/lib
dan pakaian lainnya/usr/share
, dll) dan lokasi-lokasi ini dikodekan oleh skrip pembuatan. Jadi jika Anda mencoba dan menarik sesuatu seperti ini ke dalam~
, itu akan pecah. Anda bisa menghabiskan waktu berjam-jam untuk melepaskan ketergantungan tetapi Anda bisa melakukan sesuatu yang berguna dengan waktu Anda seperti menemukan obat untuk kanker atau menyerap sebagian dari keindahan di dunia.Anda akan melakukan jauh lebih baik hanya untuk mengambil versi yang tidak dikemas dari siapa pun yang menulis perangkat lunak. Hampir semua perangkat lunak gratis tersedia dalam beberapa bentuk arsip terkompresi sebagai sumber, jadi ambil dan bangunlah. Anda tidak melakukan
make install
langkahnya. Aplikasi Anda dibuat, cukup letakkan di tempat yang Anda inginkan.sumber
/etc/init
, mencari file konfigurasi/etc
, atau memiliki beberapa jalur lain yang di-hardcode../configure --prefix=$HOME/local
.Saya tidak tahu terlalu banyak tentang subjek ini, tetapi tampaknya dari jawaban lain Anda mungkin dapat menginstal paket ke direktori lain alih-alih
/
dengandpkg
, menggunakan--root
parameter, dan kemudian melakukanchroot
ke direktori yang berisi paket itu " diinstal "di (yang tentu saja bisa menjadi dir di direktori home pengguna).Untuk menginstal paket untuk pengguna selain
root
, dimungkinkan untuk menggunakan proses di atas denganfakechroot
bukanchroot
.Disclaimer : Saya tidak mencoba ini, dan tidak memiliki banyak pengalaman pada saat menulis dengan
dpkg
atauchroot
, tapi dari apa yang saya lakukan tahu tentang alat ini, proses ini hanya mungkin bekerja.Tautan yang memiliki informasi yang mungkin berguna bagi orang yang ingin mencapai efek
chroot
tanparoot
kemampuan:chroot
fakechroot
)Memperbarui
Saya sekarang telah melakukan sedikit dengan hal-hal yang menyentuh masalah ini, dan menemukan beberapa ...
Fragmen (blok bangunan lingkungan setempat):
chroot(1)
Lengkap (penyedia lingkungan lokal lengkap):
chroot(1)
,mount --bind
,binfmt_misc
, dan berjalan binari dari arsitektur lain menggunakan qemu-user-spaceRangkuman : Dengan meniru, atau benar-benar memiliki, root privilege secara lokal, paket DEB dapat diinstal untuk lingkungan lokal.
sumber
Anda mungkin dapat menggunakan
--root
opsidpkg
untuk menginstal ke direktori lain. Tetapi mungkin akan mengalami masalah jika aplikasi mencari hal-hal di tempat-tempat tetap seperti/etc
.Singkatnya, saya tidak berpikir ada cara yang mudah.
sumber
Anda dapat mengubah kepemilikan file yang dapat dieksekusi sehingga hanya satu pengguna yang dapat menjalankannya. Kemudian, jika perlu, Anda dapat menghapus aplikasi dari menu pengguna lain.
sumber
~/bin
. Ada keraguan dalam pertanyaan ini tentang apakah Takkat ingin membatasi akses / visibilitas aplikasi multi-pengguna, atau apakah dia ingin menginstal aplikasi single-user. Pertanyaan Anda dan susunan menggunakan interpretasi sebelumnya, dan sisanya menganggap yang terakhir.Diragukan.
Deb utamanya adalah arsip yang bisa diekstraksi ke root sistem file Anda ketika diinstal (ditambah beberapa konfigurasi). Jika Anda ingin menginstalnya hanya untuk satu pengguna, Anda harus menginstalnya ke / home / folder pengguna. Bahkan jika Anda melakukannya, mereka tidak akan berfungsi, karena binari aplikasi fe tidak akan mendarat di / usr / bin (atau yang serupa), dan sistem tidak akan menemukannya jika Anda akan mencoba meluncurkannya. Demikian pula perpustakaan dll tidak akan berguna, karena sistem tidak akan tahu ada di suatu tempat di / home. Anda dapat mencoba pendekatan brute-force , dan menyesuaikan variabel PATH untuk menunjuk ke mana pun Anda mengekstrak file dari arsip deb, tetapi itu tidak hanya SANGAT tidak aman, tetapi dapat menyebabkan masalah kompatibilitas (entri menu fe tidak berfungsi, karena GNOME memperluas file .desktop menjadi di / usr / share / aplikasi).
Selain itu, jika Anda menginstal paket hanya untuk beberapa pengguna, ini dapat menyebabkan masalah ketergantungan yang gila, jika ada pengguna lain yang menginstal paket yang bertentangan dengan paket lain yang telah Anda instal hanya untuk diri Anda sendiri - dan mungkin banyak masalah terkait manajemen paket lainnya akan muncul.
Semua masalah ini membuatnya sangat sulit untuk mengelola paket secara terpisah untuk pengguna, jadi sepertinya tidak mungkin untuk menginstalnya hanya untuk satu pengguna, karena ide di balik .debs tidak mengizinkannya.
sumber