lệnh sudo cố gắng tìm kiếm tên máy chủ


15

Gần đây, tôi đã thay đổi tệp sudoers và tên máy chủ thông qua / etc / hostname. Sau khi thay đổi tập tin này, lệnh sudo của tôi mất rất nhiều thời gian. Ngoài ra, nó nói sudo không thể giải quyết máy chủ kaagini (tên máy chủ của máy của tôi).

Tại sao sudo phải biết tên máy chủ để cung cấp quyền cho một cái gì đó ??

Tệp sudoers của tôi có lệnh "Mặc định env_reset". Tôi thấy một số câu hỏi tương tự nhưng bối cảnh không phải là một đăng nhập từ xa ở đây. Lỗi được hiển thị trên một localhost.

Googling ban đầu cho vấn đề nói rằng tệp / etc / hosts phải có tên máy chủ thực tế cho 127.0.0.1. Điều này đã khắc phục vấn đề của tôi. Nhưng câu hỏi thực tế của tôi là: Tại sao chúng ta yêu cầu điều này cho sudo ?? Nên sudo làm việc không phân biệt nơi đăng nhập.



@OliverSalzburg Tôi đã viết lại câu hỏi đúng. Vui lòng cho tôi biết nếu có bất cứ điều gì sai
prathmesh.kallurkar

Câu trả lời:


16

Các /etc/sudoerstập tin được thiết kế để có thể được phân phối giữa nhiều máy chủ. Để thực hiện điều này, mỗi quyền trong tệp có một phần lưu trữ.

Điều này thường được đặt thành ALL=có nghĩa là quyền đó hợp lệ cho bất kỳ máy chủ nào, tuy nhiên nó có thể được đặt thành các máy chủ cụ thể:

%sudo    kaagini=(ALL) ALL

Để sudo biết nên áp dụng quy tắc này, nó cần phải tra cứu máy chủ mà nó đang chạy. Nó sử dụng một cuộc gọi dựa trên sự /etc/hostschính xác, đó là lý do tại sao nó thất bại nếu nó không đúng.

Có thể lập luận rằng sudokhông cần bận tâm đến việc tra cứu tên nếu phần máy chủ được đặt thành ALL=cho tất cả các quyền, nhưng nó không hoạt động theo cách đó - có vẻ như nó hoạt động ở nơi nó chạy trước khi xử lý các quy tắc .

Điều này thực sự dễ bảo trì vì sudo chỉ đọc / etc / sudoers để xem người dùng có thể làm gì trên máy hiện tại. Nhưng là một quản trị viên với 100 máy chủ, điều này có thể yêu cầu 100 tệp / etc / sudoers khác nhau để duy trì. Vì sudoers có một phần lưu trữ trong các quyền, nên bạn có thể duy trì một tệp sudoers duy nhất và phân phối nó cho tất cả các máy, nhưng vẫn có độ chi tiết so với những gì người dùng có thể làm trên mỗi máy.


Cảm ơn câu trả lời. Bạn có thể đến tập tin sudoers phân phối một lần nữa không ?? Xem, tôi có một hệ điều hành chạy trên máyA. Nên lưu trữ tệp quyền (/ etc / sudoers) cho Hệ điều hành này trên các máy khác. Hoặc câu trả lời của bạn có nghĩa là nói rằng lệnh sudo có thể nói điều gì đó giống như người dùng John có thể sudo từ machineA nhưng không phải từ machineB ??
prathmesh.kallurkar

Nó thực sự là để dễ bảo trì. sudo chỉ đọc / etc / sudoers để xem người dùng có thể làm gì trên máy hiện tại. Nhưng là một quản trị viên với 100 máy chủ, điều này có thể yêu cầu 100 tệp / etc / sudoers khác nhau để duy trì. Vì sudoers có một phần lưu trữ trong các quyền, nên bạn có thể duy trì một tệp sudoers duy nhất và phân phối nó cho tất cả các máy, nhưng vẫn có độ chi tiết so với những gì người dùng có thể làm trên mỗi máy.
Paul

thêm một câu hỏi nữa ... quản trị viên máy chủ có phải quét tệp sudoers mới mỗi khi có sự thay đổi trong tệp sudoers chính hay sudo có cung cấp cách duy trì tệp sudoers qua mạng không ??
prathmesh.kallurkar

@ prathmesh.kallurkar Không, không có phương pháp phân phối tích hợp, nhưng đây là linux, vì vậy điều này là bình thường. Bạn sẽ sử dụng rsync hoặc scp hoặc một công cụ khác để hoàn thành phần này.
Paul

1
Tôi coi đó là một lỗi (nếu chỉ có TẤT CẢ quy tắc thì sudo không cần biết tên máy chủ của nó) và do đó đã gửi bugzilla.sudo.ws/show_orms.cgi?id=916
Matthias Urlichs


-3

Puppet là một phần mềm quản lý cấu hình có khả năng tự động cấu hình một nhóm máy chủ bằng cách đọc các tệp Bản kê rối. Một tệp như vậy có thể bao gồm định nghĩa về tệp / etc / sudoers của bạn, sau đó có thể được đẩy ra cho tất cả các "tác nhân" con rối của bạn từ "chủ nhân" con rối của bạn. Sau đó, tất cả các máy chủ sẽ nhận được cùng một bản sao của tệp / etc / sudoers của bạn, có thể (và nên) bao gồm các định nghĩa HOST, do đó bạn có thể cấp cho một số người dùng một số lệnh trên một số máy chủ (nhưng không phải trên các máy chủ khác).


3
Bạn có thể mở rộng câu trả lời của mình để giải thích con rối là gì, bạn tìm thấy nó ở đâu và làm thế nào để bạn sử dụng nó để giải quyết vấn đề? Từ hàng đợi đánh giá
fixer1234

2
Vui lòng đọc Làm thế nào để tôi giới thiệu phần mềm cho một số mẹo về cách bạn nên giới thiệu phần mềm. Bạn nên cung cấp ít nhất một liên kết, một số thông tin bổ sung về chính phần mềm và cách sử dụng phần mềm để giải quyết vấn đề trong câu hỏi.
DavidPostill
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.