Cho phép một số khách thực hiện các lệnh nhất định


19

Tôi muốn tạo một người dùng mới trên một số máy chủ Debian / Ubuntu có thể cập nhật máy chủ bằng các lệnh apt-get updateapt-get dist-upgrade, nhưng tôi sẽ không cung cấp cho họ quyền truy cập sudo đầy đủ để có thể làm bất cứ điều gì khác. Điều này có thể không? Có lẽ có một cách để tạo một tập lệnh mà họ không thể chỉnh sửa nhưng có thể thực thi, sẽ được thực thi với tư cách là người dùng root?


2
Xem man sudoerssudo cat /etc/sudoers.
goldilocks

Cảm ơn @goldilocks tôi đã luôn nghĩ rằng tập tin sudoers chỉ để cho phép mọi người được cấp quyền truy cập root trước đó.
Chương trình

Câu trả lời:


30

Sudo/etc/sudoerstập tin không chỉ để cấp cho người dùng quyền truy cập root đầy đủ.

Bạn có thể chỉnh sửa tệp sudoers với người dùng sudo hiện có, bằng lệnh sudo visudo

Bạn có thể nhóm các lệnh mà bạn muốn cấp quyền truy cập như dưới đây:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
Cmnd_Alias UPDATE_COMMANDS = /usr/bin/apt-get

Sau đó, bạn có thể cung cấp một đặc quyền người dùng cụ thể cho các lệnh như vậy:

[User's name] ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS, UPDATE_COMMANDS

Điều này có thể được nhìn thấy trong hình dưới đây nhập mô tả hình ảnh ở đây:

Bây giờ nếu bạn thử sudo apt-get updatehoặc sudo apt-get dist-upgradecác lệnh đó sẽ thực thi mà không yêu cầu mật khẩu . Nếu bạn muốn được nhắc nhập mật khẩu, hãy xóa NOPASSWDbit nơi bạn cấp quyền truy cập cho người dùng vào các nhóm lệnh.

Nếu bạn cố chạy bất cứ thứ gì khác với tư cách là sudongười dùng, bạn sẽ được nhắc nhập mật khẩu và không thành công.

Tài liệu tham khảo


6
Lưu ý rằng cho phép người dùng được phép chạy apt-get, hoặc thậm chí chỉ đơn thuần apt-get upgrade, mang lại cho họ quyền truy cập root đầy đủ ! Nhiều tập lệnh nâng cấp cho phép người dùng tương tác thực thi trình bao, ví dụ khi tệp cấu hình đã thay đổi. Để an toàn, hãy hạn chế apt-getmột số lệnh nhất định và buộc nó không tương tác. Xem Có an toàn cho người dùng ssh của tôi khi được cung cấp sudo không mật khẩu apt-get updateapt-get upgradekhông?
Gilles 'SO- ngừng trở nên xấu xa'

Trong trường hợp của tôi, tôi đã phải đặt hàng sau%sudo ...
Aleksey

Có cách nào để làm điều đó chỉ từ dòng lệnh?
Kamil Dziedzic
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.