Làm thế nào để cấp quyền truy cập nopasswd cho nhiều lệnh thông qua sudoers?


45

Dưới đây là những gì tôi biết:

Tôi phải thêm dòng dưới đây trong sudoerstệp để trao quyền cho người dùng cho nhiệm vụ cụ thể.

user_name ALL=NOPASSWD: /usr/bin/apt-get install

Trong trường hợp này, tôi muốn cấp quyền truy cập cho người dùng này để khởi động lại 2 dịch vụ (nghĩa là ApacheMySQL) với tất cả các quyền cài đặt.

Sử dụng dòng trên, tôi đã cho anh ta tất cả các quyền cài đặt, bây giờ tôi có phải thêm cùng một dòng hai lần nữa để cung cấp quyền cho các dịch vụ không? Hoặc tôi chỉ có thể thêm các lệnh đó trong cùng một dòng, được phân tách bằng dấu phẩy hoặc một cái gì đó?

Câu trả lời:


48

Tôi đã giải quyết vấn đề bằng cách tạo một nhóm mới cho quyền quản trị hạn chế ... tên của nhóm đó là LimitedAdminssau khi tôi cập nhật sudoerstệp như dưới đây.

Dòng tôi nối là:

%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Đây là /etc/sudoerstập tin hoàn chỉnh :

# This file MUST be edited with the 'visudo' command as root.    
#   
# Please consider adding local content in /etc/sudoers.d/ instead of directly modifying   his file.   
#   
# See the man page for details on how to write a sudoers file.  
# 
Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL  

#includedir /etc/sudoers.d
%domain_name\\administrators ALL=(ALL) ALL
%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Nó hoạt động hoàn toàn tốt trong trường hợp hệ thống của bạn là miền hay không.


Bạn không cần phải đặt công cụ sau khi #includedirdòng là bạn?
hamstar

@hamstar Xin chào! Có bạn đúng, bạn đã sử dụng tập tin cấu hình này trong công ty của tôi hơn 2 năm nay và nó hoạt động hoàn toàn tốt. Ngay cả tôi cũng muốn giới thiệu, để đặt hai dòng cuối cùng trước #includedir.
Hrish

3
Hoặc tốt hơn, đặt hai dòng đó vào một tệp mới trong /etc/sudoers.d thay vì chỉnh sửa / etc / sudoers.
tgharold

@tgharold Có bạn !! Bạn nói đúng ... nó thực sự là một lựa chọn tốt hơn so với những gì tôi đã đề xuất ... :) Đánh giá cao ý tưởng của bạn sẽ cố gắng thực hiện tại địa điểm của tôi.
Hrish

Là #includedir một nhận xét? Hoặc bao gồm tự động xảy ra và bình luận chỉ nhắc nhở chúng ta về điều đó?
HeatfanJohn

12

Hình như dấu phẩy là thứ bạn cần.

Cmnd_Alias ​​IN = / usr / sbin / lpc, / usr / bin / lprm
...
user3 ALL = IN

Nguồn


Tôi đã trao quyền theo cách bạn đề cập tuy nhiên tôi nhận được thông báo lỗi như dưới đây. <br/> E: Không thể mở tệp khóa / var / lib / dpkg / lock - open (13: Quyền bị từ chối) <br/> E: Không thể khóa thư mục quản trị (/ var / lib / dpkg /), là bạn root chưa? ... bất cứ ai có thể giúp đỡ về điều này?
Hrish

@Rishee Tôi sẽ thử một khi tôi về nhà
Karthik T

tập tin sudores của tôi có chứa những điều được đề cập dưới đây.
Hrish

# Đặc tả đặc quyền người dùng root ALL = (ALL: ALL) ALL # Thành viên của nhóm quản trị có thể nhận được quyền root% admin ALL = (ALL) ALL # Cho phép các thành viên của nhóm sudo thực hiện bất kỳ lệnh nào% sudo ALL = (ALL: ALL) TẤT CẢ /init.d/apache2 khởi động lại
Hrish

2

Những gì tôi đã làm là (Tương tự như những gì bạn đang tìm kiếm):

## PRTG monitoring
Cmnd_Alias PRTG = /bin/cat /proc/loadavg, /bin/df, /var/prtg/scripts/check_proc.sh
prtg ALL = NOPASSWD: PRTG

Phía trong: /etc/sudoers.d/666-prtg

(666, vì ... à ... prtg LÀ công cụ giám sát dựa trên windows mà bạn biết)

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.