Ngăn người dùng Linux thực thi bất cứ điều gì không được chấp thuận


0

Đối với một số người dùng 'bob' trong Linux, có thể giới hạn nội dung được thực thi bằng 'bob' chỉ với các đường dẫn cụ thể.

Như một ví dụ giả sử rằng 'bob' có thư mục chính / home / bob

'bob' không được đọc / ghi / thực thi (quyền không) bất cứ điều gì ở trên / home / bob bao giờ.

/ bin, / lib, / usr / bin, / usr / lib, / usr / local / bin, / usr / local / lib, v.v ... được cung cấp rõ ràng các cài đặt thích hợp rx - vì vậy 'bob' có thể thực thi công cụ từ các đường dẫn này nhưng không viết thư cho họ

'bob' có quyền rwx đối với thư mục riêng (/ home / bob) nhưng có thể không cho phép bob thực thi nội dung từ thư mục riêng của mình theo mặc định và sau đó cho phép một số nội dung (trình khởi chạy, tập lệnh, v.v.) được thực thi bằng 'bob '

xin lưu ý - 'bob' có thể biên dịch nội dung của riêng bạn trong / home / bob và chạy nội dung đó (điều này nên được ngăn chặn). Ngoài ra, 'bob' luôn có thể sử dụng chmod, chgrp, v.v. trên các tệp do chính anh ta sở hữu. Điều cần thiết là phòng ngừa thực thi - ngay cả trên các tệp sở hữu.

Câu trả lời:


2

Đặt thư mục nhà trên một noexechệ thống tập tin. Điều đó sẽ giúp ngăn người dùng thực thi các tệp nhị phân được lưu trữ ở đó, mặc dù nó không đảm bảo 100%.

Đặt bất kỳ vị trí nào có thể ghi người dùng khác, chẳng hạn như / tmp cũng trên các hệ thống tệp noexec.

Đặt bất cứ thứ gì bạn muốn người dùng có thể thực thi vào ví dụ / usr / local, được sở hữu bởi root và với các quyền thích hợp.

Lưu ý rằng điều này sẽ không ngăn các trình phân tích cú pháp phân tích cú pháp và thực thi mã được lưu trữ trong thư mục chính của bob. Ví dụ, một tập lệnh Perl có thể có tập bit thực thi của nó và được thực thi như ./myscript.plhoặc nó có thể được thực thi như perl ./myscript.pltrong trường hợp đó nó sẽ chỉ được đọc làm đầu vào cho trình thông dịch Perl.

Nếu bạn muốn đảm bảo tốt hơn thế, hãy xem xét việc tăng cường bằng cách sử dụng các chroot jail, SELinux hoặc thậm chí có thể loại bỏ hoàn toàn quyền truy cập vỏ của bob. Nếu anh ta chỉ được phép sử dụng tài khoản của mình làm nơi lưu trữ tệp được tôn vinh, anh ta có thực sự cần quyền truy cập shell ngay từ đầu không? Ví dụ, có thể hạn chế người dùng không tin cậy sftp, truy cập SMB / CIFS / NFS hoặc WebDAV hoạt động tốt hơn trong trường hợp sử dụng của bạn?


Cảm ơn đã phản ứng nhanh chóng. Điều cần thiết là để 'bob' có thể biên dịch nội dung (ví dụ: cho phép thực thi gcc hoặc cài đặt firefox chẳng hạn, v.v.) ('bob' không thể sao chép hoặc tạo nhị phân và thực thi nó)
không. tên. Xin vui lòng

chỉ để rõ ràng - 'bob' sẽ có thể chạy hệ thống firefox - nhưng không phải là tệp nhị phân firefox mới được biên dịch bởi anh ta - hoặc - không phải là tệp nhị phân firefox đã tải xuống.
no.names. Xin vui lòng
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.