Câu trả lời:
Tùy thuộc vào những gì bạn muốn thực hiện, có thể có nhiều cách khác nhau để thực hiện công việc này (hoặc ít nhất là đưa ra một ngữ nghĩa khó hiểu về chức năng bạn muốn).
Việc cài đặt phần mềm theo nhiều cách giúp giảm tài nguyên hoặc cho phép truy cập vào những thứ đã có trên hệ thống.
Cho dù bạn đang nói về việc cấp quyền truy cập cho máy in hoặc cho phép người dùng thực thi các chương trình trong một thư mục nhất định, vẫn có cách để thực hiện việc này và mặc dù chúng có thể có nguồn gốc từ Ubuntu, nhưng các loại giải pháp này thường (tất nhiên) sẽ được thêm vào sau khi cài đặt .deb.
Đây là hai lớp chung của điều khiển sau cài đặt có thể được thêm vào. Lưu ý rằng, với môi trường phù hợp, ví dụ: khi có chính sách nhóm được kiểm soát chặt chẽ, việc này có thể dễ dàng hơn một khi bạn có hệ thống cơ bản. Những loại quyền này thậm chí có thể được gắn với LDAP hoặc một hệ thống tương tự có thể cấp quyền và xác thực cho mỗi người dùng hoặc nhóm.
Kiểm soát độ nhớt
Tôi đã có một tình huống có lẽ hơi giống mình, nhưng trong trường hợp của tôi, người dùng không (rất) rất tinh vi (tất cả họ đều dưới 7 tuổi). Đối với tôi, chỉ cần ẩn các menu Gnome và loại bỏ các trình khởi chạy trên máy tính để bàn đã hoạt động.
Việc loại bỏ bit thực thi khỏi các thư mục sẽ loại bỏ khả năng các quá trình tìm kiếm hoặc duyệt chúng. Nó có hiệu quả có thể khiến chúng vô hình và khôn ngoan, khiến chúng không khả dụng. Ví dụ, nếu bạn có một chính sách hệ thống mặc định tạo các menu dựa trên quyền truy cập tệp, bạn có thể sử dụng loại giải pháp mỹ phẩm này và sau đó sử dụng nó cho các cài đặt tiếp theo với ít nỗ lực hơn.
Kiểm soát thực thi Việc kiểm
soát tài nguyên có thể được thực hiện thông qua các quyền Unix, hồ sơ apparmor, quyền SELinux, v.v. Có thể có các mức lọc điều khiển khác có thể đi vào hoạt động tùy thuộc vào ứng dụng. Trong trường hợp không có nhiều giải pháp được nhắm mục tiêu hơn, bạn có thể phải viết các hàm bao quanh các chương trình nhất định để kiểm soát người dùng hoặc xử lý quyền truy cập.
Vâng dpkg
sẽ không giúp bạn vì đây không phải là mục đích thiết kế của nó. Nó muốn trở thành một cuộc điều tra dân số duy nhất thuộc sở hữu gốc của các gói được cài đặt trên một hệ thống.
Điều duy nhất nhảy vào tâm trí chỉ là giải nén gói và cố gắng đặt các tệp theo cách thủ công trong thư mục nhà.
Tuy nhiên điều này sẽ chỉ làm việc cho một số thứ. Rất nhiều gói được chia thành các khối (tệp thực thi hoặc tập lệnh trong /usr/bin
, thư viện /lib
và các trang phục khác /usr/share
, v.v.) và các vị trí này được mã hóa cứng bởi các tập lệnh xây dựng. Vì vậy, nếu bạn cố gắng và kéo một cái gì đó như thế này vào ~
, nó sẽ vỡ. Bạn có thể dành hàng giờ để giải phóng sự phụ thuộc nhưng bạn có thể làm điều gì đó hữu ích với thời gian của mình như tìm ra phương thuốc chữa ung thư hoặc hấp thụ một số vẻ đẹp trên thế giới.
Bạn sẽ làm tốt hơn nhiều chỉ để lấy một phiên bản không được đóng gói từ bất cứ ai viết phần mềm. Hầu như tất cả các phần mềm miễn phí đều có sẵn trong một số dạng lưu trữ nén dưới dạng nguồn, vì vậy hãy lấy nó và chỉ cần xây dựng nó. Bạn không làm make install
bước này. Ứng dụng của bạn được xây dựng, chỉ cần đặt nó ở nơi bạn muốn.
/etc/init
, tìm tệp cấu hình /etc
hoặc có một số đường dẫn khác được mã hóa cứng.
./configure --prefix=$HOME/local
.
Tôi không biết quá nhiều về chủ đề này, nhưng có vẻ như từ các câu trả lời khác mà bạn có thể cài đặt một gói vào thư mục khác thay vì /
với dpkg
, sử dụng các --root
tham số, và sau đó làm một chroot
với dir mà gói là " được cài đặt "trong (tất nhiên có thể là một thư mục trong thư mục chính của người dùng).
Để cài đặt gói cho người dùng khác root
, có thể sử dụng quy trình trên fakechroot
thay vì chroot
.
Disclaimer : Tôi không cố gắng này, và không có nhiều kinh nghiệm tại thời điểm văn bản với dpkg
hay chroot
, nhưng từ những gì tôi làm biết về những công cụ này, quá trình này chỉ có thể hoạt động được.
Liên kết có thông tin có thể hữu ích cho những người muốn đạt được hiệu quả chroot
mà không có root
khả năng:
chroot
fakechroot
)Bây giờ tôi đã thực hiện một chút với những thứ liên quan đến chủ đề này, và tìm hiểu thêm ...
Mảnh vỡ (khối xây dựng môi trường địa phương):
chroot(1)
Đầy đủ (nhà cung cấp môi trường địa phương hoàn chỉnh):
chroot(1)
, mount --bind
, binfmt_misc
, và chạy mã nhị phân từ kiến trúc khác sử dụng qemu-user-spaceTóm tắt : Bằng cách mô phỏng, hoặc thực sự có, quyền root cục bộ, các gói DEB có thể được cài đặt cho môi trường cục bộ.
Bạn có thể có thể sử dụng --root
tùy chọn dpkg
để cài đặt vào thư mục khác. Nhưng có lẽ sẽ gặp vấn đề nếu ứng dụng tìm kiếm công cụ ở những nơi cố định như thế nào /etc
.
Nói tóm lại, tôi không nghĩ có một cách dễ dàng.
Bạn có thể thay đổi quyền sở hữu tệp thực thi để chỉ một người dùng có thể chạy tệp đó. Sau đó, nếu cần, bạn có thể xóa ứng dụng khỏi menu của những người dùng khác.
~/bin
. Có một sự mơ hồ trong câu hỏi này về việc Takkat muốn hạn chế quyền truy cập / khả năng hiển thị của ứng dụng nhiều người dùng hay anh ta muốn cài đặt ứng dụng một người dùng. Các câu hỏi của bạn và sắp xếp sử dụng cách giải thích trước, và phần còn lại giả định sau.
Nghi ngờ.
Các cuộc tranh luận chủ yếu là các tài liệu lưu trữ được trích xuất vào thư mục gốc của hệ thống tập tin của bạn khi được cài đặt (cộng với một số cấu hình). Nếu bạn muốn cài đặt chúng chỉ cho một người dùng, bạn cần phải cài đặt chúng vào thư mục / home / user bằng cách nào đó. Ngay cả khi bạn đã làm như vậy, chúng sẽ không hoạt động, vì các nhị phân của ứng dụng sẽ không xuất hiện trong / usr / bin (hoặc sth tương tự) và hệ thống sẽ không tìm thấy chúng nếu bạn cố gắng khởi chạy chúng. Tương tự các thư viện, vv sẽ là vô ích, vì hệ thống sẽ không biết có một nơi nào đó trong / home. Bạn có thể thử cách tiếp cận brute-force và điều chỉnh biến PATH để trỏ đến bất cứ nơi nào bạn trích xuất các tệp từ kho lưu trữ gỡ lỗi, nhưng đó không chỉ là RẤT không an toàn, nhưng có thể gây ra sự cố tương thích (các mục trong menu sẽ không hoạt động, vì Gnome mở rộng các tệp .desktop ở trong / usr / share / ứng dụng).
Hơn nữa, nếu bạn đã cài đặt một gói chỉ dành cho một số người dùng, nó có thể gây ra sự cố phụ thuộc điên rồ, nếu bất kỳ người dùng nào khác cài đặt gói xung đột với gói khác mà bạn đã cài đặt cho riêng mình - và có thể hàng tấn vấn đề liên quan đến quản lý gói khác sẽ xuất hiện.
Tất cả những rắc rối này khiến việc quản lý các gói riêng biệt cho người dùng trở nên vô cùng khó khăn, vì vậy dường như không thể cài đặt chúng chỉ cho một người dùng, vì ý tưởng đằng sau các .deb không đồng ý điều đó.