Cho phép người dùng không phải quản trị viên cài đặt các gói thông qua apt hoặc vòng / phút?


13

Có thể cho phép người dùng không root để cài đặt các gói trên toàn hệ thống bằng cách sử dụng apt hoặc vòng / phút?

Nơi tôi làm việc hiện đang có thiết lập lỗi thời trên các hộp linux và quản trị viên phát bệnh vì phải thực hiện tất cả các cài đặt cho người dùng theo yêu cầu, vì vậy họ nghĩ đến việc cung cấp quyền sudo đầy đủ cho tất cả người dùng. Điều này có nhược điểm bảo mật rõ ràng. Vì vậy, tôi tự hỏi liệu có cách nào cho phép người dùng bình thường cài đặt phần mềm - và nâng cấp và gỡ bỏ nó không?


4
Nếu bạn cung cấp đặc quyền để cài đặt các gói, về cơ bản bạn đã cung cấp đầy đủ quyền quản trị viên, vì người dùng chỉ có thể cài đặt gói với vỏ gốc setuid.
camh

@camh hrm .. bạn có thể có một kho lưu trữ được hiệu đính và không cho phép người dùng thêm kho lưu trữ mới, phải không? Hoặc apt cho phép bạn cài đặt các gói từ các tệp .deb? Tôi nhận ra rằng một repo được hiệu đính có thể sẽ hoạt động lâu dài hơn, đây là một câu hỏi mang tính khái niệm :)
naught101

1
apt-secure(8)nói: "apt-get hiện tại sẽ chỉ cảnh báo cho các tài liệu lưu trữ chưa được ký, các bản phát hành trong tương lai có thể buộc tất cả các nguồn phải được xác minh trước khi tải xuống các gói từ chúng". Tùy thuộc vào mức độ tinh vi của một cuộc tấn công, có thể chiếm quyền kết nối với nguồn lưu trữ và tiêm một gói không đáng tin cậy. Tuy nhiên, hãy đọc trang người đàn ông đó để biết thêm chi tiết. Bạn có thể có một giải pháp đủ an toàn cho mô hình luồng của bạn.
camh


Câu trả lời:


20

Bạn có thể chỉ định các lệnh được phép bằng sudo, bạn không phải cho phép truy cập không giới hạn, ví dụ:

username ALL = NOPASSWD : /usr/bin/apt-get , /usr/bin/aptitude

Điều này sẽ cho phép tên người dùng chạy sudo apt-getsudo aptitudekhông có bất kỳ mật khẩu nào nhưng sẽ không cho phép bất kỳ lệnh nào khác.

Bạn cũng có thể sử dụng gói phần mềm kết hợp với PolicyKit để có mức độ kiểm soát tốt hơn so với sudo.

Cho phép người dùng cài đặt / gỡ bỏ các gói có thể là một rủi ro. Họ có thể dễ dàng kết xuất một hệ thống không hoạt động chỉ bằng cách gỡ cài đặt các phần mềm cần thiết như libc6, dpkg, vòng / phút, v.v. Cài đặt phần mềm tùy ý từ kho lưu trữ được xác định có thể cho phép kẻ tấn công cài đặt phần mềm lỗi thời hoặc có thể khai thác và truy cập root. Câu hỏi chính theo ý kiến ​​của tôi là bạn tin tưởng nhân viên của mình đến mức nào?

Tất nhiên, nhóm quản trị viên của bạn cũng có thể bắt đầu sử dụng hệ thống quản lý cấu hình như con rối, đầu bếp hoặc tìm kiếm trong không gian vũ trụ để quản lý hệ thống của bạn. Điều này sẽ cho phép họ cấu hình và quản lý hệ thống từ một hệ thống trung tâm.


Tôi đã bỏ qua câu hỏi của mình, nhưng bạn có ý kiến ​​gì về việc giảm bảo mật ngụ ý bằng cách cho phép điều này không? Ý tôi là, bạn không thể thay đổi kho lưu trữ gói, vì vậy bạn có thể sẽ không có quyền truy cập sudo đầy đủ, nhưng bạn có thể ghi vào bất kỳ tệp nào bằng cách sử dụng aptitude (tùy chọn> tùy chọn> "Tệp để đăng nhập hành động vào"), có thể gây ra một số thiệt hại nghiêm trọng. Tôi không chắc lắm về PolicyKit ...
naught 101

1
@ naught101 ok tôi đã thêm một số ý kiến ​​về bảo mật. JFTR vì bộ chính sách sẽ không cung cấp quyền truy cập root, nó sẽ ít gặp vấn đề hơn so với sử dụng sudo
Ulrich Dangel

Có nhiều cách bạn có thể chạy shell từ dpkg hoặc vòng / phút. Ví dụ: dpkg sẽ nhắc khi có thay đổi tệp cấu hình sẽ xảy ra xung đột, với một trong các tùy chọn đang khởi động trình bao để kiểm tra tình huống . Điều này sẽ bắt đầu một shell như root nếu chạy qua sudo. Tương tự như vậy nếu bạn có thể chạy trình soạn thảo từ công cụ, vì hầu hết các trình soạn thảo cho phép bạn chạy các lệnh shell tùy ý từ bên trong chúng (ví dụ: lệnh trong vi).
David Gardner

@ naught101 tôi sẽ thử nghiệm cho leo thang đặc quyền thông qua một RPM có chứa một vỏ SUID như blog này mô tả: nosedookie.blogspot.com/2011/07/... Trong một kịch bản tiêm vỏ, tuy nhiên, nơi mà các tài khoản sudoer bị tổn thương, người ta có thể giảm thiểu leo thang đặc quyền thông qua sudo bằng cách yêu cầu nhập mật khẩu , trái ngược với NOPASSWD.
Matt

7

aptdcon

Từ trang người đàn ông:

aptdcon: cho phép thực hiện các tác vụ quản lý gói, ví dụ: cài đặt hoặc gỡ bỏ phần mềm, sử dụng aptdaemon. Không cần phải root để chạy chương trình này.


1
Mặc dù bạn không cần quyền root / sudo để chạy aptdcon, nhưng nó ngay lập tức khởi chạy hộp thoại xác thực cho người dùng không có đặc quyền - Tôi mới thử nghiệm trên Ubuntu. Nếu bạn không phải là người dùng đặc quyền / được ủy quyền, thì điều này không thêm / xóa gói.
hiền nhân

1
Không hoạt động trên các hoạt độngERROR: You are not allowed to perform this action. ('system-bus-name', {'name': ':1.716'}): org.debian.apt.install-or-remove-packages
JacopKane


1

Tôi cũng đã tìm kiếm một cái gì đó như thế, nhưng không có gì xuất hiện, vì vậy tôi đã mã hóa giải pháp dễ dàng này "softwarechannels":

https://github.com/alfem/softwarechannels

Đây là một hệ thống rất đơn giản để cho phép người dùng thông thường (không có quản trị viên) cài đặt các gói từ danh mục bị hạn chế.

Chỉ cần xác định 'kênh' (nhóm gói) trong một tệp văn bản đơn giản và cung cấp cho người dùng của bạn quyền để khởi chạy softwarechannels.

Họ sẽ chỉ thấy các gói trong các kênh phù hợp với các nhóm unix của họ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.