Lời nói đầu
Đây là một câu hỏi khá phức tạp liên quan đến tệp Sudoers và lệnh sudo nói chung.
LƯU Ý: Tôi đã thực hiện những thay đổi này trên một máy chuyên dụng chạy Ubuntu Desktop 13.04, mà tôi sử dụng hoàn toàn cho mục đích học tập. Tôi hiểu rằng đó là một rủi ro bảo mật rất lớn để kích hoạt NOPASSWD sudo.
Câu hỏi
Ban đầu, thay đổi duy nhất của tôi đối với tệp sudoers (/ etc / sudoers) là một dòng, một đặc tả người dùng nên kích hoạt 'nicholsonjf' để chạy tất cả các lệnh bằng sudo mà không phải nhập mật khẩu (xem dòng bắt đầu bằng 'nicholsonjf '):
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
nicholsonjf ALL=NOPASSWD: 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
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Tuy nhiên, điều này không hoạt động và tôi vẫn được nhắc nhập mật khẩu mỗi lần tôi chạy một lệnh là 'nicholsonjf'. Tôi chỉ có thể bắt đầu chạy các lệnh sudo dưới dạng 'nicholsonjf' khi tôi xóa 'nicholsonjf' khỏi nhóm sudo và quản trị viên.
Bất cứ ai có thể giải thích tại sao điều này làm việc?
Có phải vì người dùng 'nicholsonjf' đã kế thừa quyền sudo từ hai thông số kỹ thuật của nhóm 'admin' và 'sudo' (được xem bên dưới trong tệp sudoers), đã ghi đè lên đặc tả người dùng 'nicholsonjf' vì chúng nằm sâu hơn trong tập tin cấu hình?