cấu hình sudoers hạt mịn (đối số dòng lệnh được phép)


20

có một cách đơn giản để cho phép người dùng chạy (ví dụ)

/usr/bin/pacman -S -u

là root, không cho phép anh ta chạy

/usr/bin/pacman -S -u some_package

?

Dòng

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u

cho phép cả hai, và

user ALL=(root) NOPASSWD: /usr/bin/pacman -S -u ""

dường như là tương đương về mặt ngữ nghĩa.

Câu trả lời:


27

Đối với trường hợp của bạn hãy thử một cái gì đó như thế này:

Cmnd_Alias PACMAN = /usr/bin/pacman -S -u, ! /usr/bin/pacman -S -u some_package
user ALL=(root) NOPASSWD: PACMAN

Bạn có thể sử dụng các mẫu toàn cầu shell như [az], [0-9], *, v.v. trong tệp sudoers của bạn để loại trừ các gói khớp với một mẫu nhất định.


3

Viết một kịch bản làm những gì bạn muốn và cung cấp cho sudo quyền truy cập vào nó.

Ngoài ra, hãy đảm bảo rằng bất kỳ môi trường nào chạy trong mạng này đều không có quyền truy cập vào mạng hoặc họ chỉ có thể sử dụng dns của riêng mình để giả mạo gương và sau đó chạy mã tùy ý khi root được cài đặt bởi pacman.


Đó không phải là một cách thanh lịch, sudo hỗ trợ theo mặc định trường hợp được đưa ra chính xác
matthias krull

1
Không phải là giải pháp tốt nhất, nhưng +1 cho cảnh báo bảo mật
Aaron J Lang
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.