Danh sách đen Sudoers


7

Chúng tôi cần thêm một vài người dùng vào tệp sudoers trên Linux. Họ sẽ có thể để bất cứ điều gì root có thể ngoại trừ sau đây:

  • Không nên sửa đổi, đọc, xóa /nfsshare/config
  • Không nên sửa đổi, đọc, xóa /etc/passwd
  • Không nên gắn kết bất cứ điều gì
  • Không nên thay đổi mật khẩu root
  • Không nên chỉnh sửa /etc/sudoershoặc chạy visudođể thêm người dùng khác

Điều này có thể không?


2
Không có nó không phải là .
dùng253751

Câu trả lời:


23

Về cơ bản, tôi đồng ý với Wissam Al-Roujoulah về vấn đề này.

Chúng tôi cần thêm một vài người dùng vào tập tin sudoers

Bạn, thực sự cần phải làm điều này? Có thể có những cách khác, sử dụng aclhoặc quyền UNIX thông thường.

Như Wissam Al-Roujoulah đã chỉ ra, cố gắng "đưa vào danh sách đen" một số lệnh nhất định, thực tế là một ý tưởng thực sự tồi tệ (đọc bên dưới từ man sudoers, nhấn mạnh của tôi):

Lưu ý, tuy nhiên, bằng cách sử dụng '!' kết hợp với tích hợp
 TẤT CẢ các bí danh để cho phép người dùng chạy tất cả trừ một số lệnh hiếm khi
 hoạt động như dự định

Thay vào đó, bạn có thể chỉ định "danh sách trắng", ví dụ: các lệnh thực tế mà người dùng được phép chạy. Một cái gì đó như thế này:

user1 ALL=/sbin/shutdown

Ở trên sẽ cho phép user1tắt. Bạn có thể thêm nhiều lệnh trong danh sách được phân tách bằng dấu phẩy.

Tìm hiểu thêm về điều này ở đây .


3
Để minh họa cách vô nghĩa nó là cố gắng vô hiệu hóa lệnh cụ thể: bạn có thể thử để ngăn chặn shutdown, nhưng nếu bạn quên để chặn chức năng tương tự trong init/ systemctl(/ reboot) hoặc vẫn cho phép sudo su -hoặc sudo shhoặc sudo script_that_invokes_shutdown.shbởi thiếu sót, bạn thực sự có bất cứ điều gì không hoàn thành.
Rhymoid

6
@Rhymoid: Đừng quên sudo gcc my-evil-file.c; sudo a.out. Lather, rửa sạch, lặp lại với Python, Perl, Ruby, Bash, v.v.
Kevin

16
Yêu thích hiện tại của tôi: nếu "lệnh" được đưa vào danh sách đen, chỉ cần thêm một lệnh khác sudovà nó sẽ hoạt động : sudo sudo command.
Chris Kuehl

12

Tôi đoán điều đó gần như là không thể, bởi vì bạn phải ngăn người dùng sử dụng bất kỳ trình soạn thảo nào, mặc dù điều đó sẽ không ngăn cản anh ta vì anh ta có thể cài đặt một cái khác hoặc di chuyển nhị phân sang bất kỳ vị trí nào khác và sử dụng nó.

Điểm chính bạn không thể thêm người dùng sudoersvà cho phép anh ta trừ một số người.

Bạn phải làm điều đó theo cách đối diện.


3

su/ sudotruy cập là chọn tham gia, không chọn từ chối. Một khi họ có thể có được một vỏ gốc, họ có thể phá vỡ mọi biện pháp bảo vệ khác mà bạn đưa ra. Nếu họ có những thứ cụ thể cần được chạy và quản lý sudoerstệp quá phức tạp (có lẽ là cách tiếp cận tốt nhất để nói chung), hãy xem xét viết các nhị phân đơn mục đích nhỏ để khởi chạy thứ đó và sau đó đặt setuidcờ lên chúng.


Không viết nhị phân tùy chỉnh, sử dụng tùy chọn sudo để giới hạn người dùng theo một lệnh nhất định
Ferrybig

1
Lý do tôi đề xuất các tệp nhị phân tùy chỉnh là vì bạn không thể thiết lập tập lệnh shell setuid và việc quản lý các quyền trong tệp sudoers có thể khá nguy hiểm. Nhưng điểm tốt - tôi sẽ sửa đổi câu trả lời.
lông mịn

0

Bạn đã xem xét việc sử dụng SELinux? Phân phối nào bạn đang sử dụng?

Có thể tạo một người dùng SELinux mới và chỉ cung cấp cho anh ta các đặc quyền cần thiết (quyền truy cập vào vai trò). Tt sẽ là một lựa chọn tham gia, vì vậy bạn sẽ cần liệt kê mọi thứ mà người dùng cần làm.

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.