Điểm:0

Puppet/Augeas -- lệnh ins hoạt động trên RH6, không hoạt động trên RH7

lá cờ cn

Tôi có cấu trúc này trong mô-đun con rối của mình để thêm một dòng vào /etc/sudoers sau dòng "Mặc định" cuối cùng:

  augeas { "sudoers.ssh_auth_sock" :
    ống kính => "Sudoers.lns",
    bao gồm => "/etc/sudoers",
    onlyif => "khớp Mặc định/env_keep/var[.= 'SSH_AUTH_SOCK'] size==0",
    thay đổi => [
       # Tạo một dòng Mặc định mới cho hai biến
       "in Mặc định sau Mặc định [cuối()]",
       # Đặt dòng Mặc định này thành loại +=
       "xóa Mặc định[last()]/env_keep/append",
       # gán giá trị cho hai biến
       "đặt Mặc định[last()]/env_keep/var[1] SSH_AUTH_SOCK",
    ],
  }

Nó hoạt động hoàn hảo trên máy RedHat 6 của tôi

Lưu ý: Augeas[sudoers.ssh_auth_sock](provider=augeas):
--- /etc/sudoers 2021-10-12 13:30:52.880901115 +0000
+++ /etc/sudoers.augnew 2021-10-12 13:31:28.697931561 +0000
@@ -77,6 +77,7 @@
 # Mặc định env_keep += "HOME"

 Mặc định secure_path = /sbin:/bin:/usr/sbin:/usr/bin
+Mặc định env_keep += SSH_AUTH_SOCK

 ## Tiếp theo là phần chính: người dùng có thể chạy phần mềm nào trên đó

Lưu ý: /Stage[main]/Sudoers/Augeas[sudoers.ssh_auth_sock]/returns: thực thi thành công

Nhưng nó không thành công trên máy RedHat 7 của tôi:

Cảnh báo: Augeas[sudoers.ssh_auth_sock](provider=augeas): Tải không thành công cho một hoặc nhiều tệp, xem gỡ lỗi cho /augeas//đầu ra lỗi
Lỗi: /Stage[main]/Sudoers/Augeas[sudoers.ssh_auth_sock]: Không thể đánh giá: Lỗi khi gửi lệnh 'ins' với thông số ["Mặc định", "sau", "/files/etc/sudoers/Defaults[last( )]"]/Lỗi khi gửi lệnh 'ins' với thông số ["Defaults", "after", "/files/etc/sudoers/Defaults[last()]"]

Ai đó có thể giúp tôi hiểu những gì đã thay đổi hoặc những gì tôi đã làm sai để tôi có thể làm cho đoạn mã này hoạt động trong cả hai môi trường không?

lá cờ cn
`tải không thành công` trong nhật ký là một gợi ý rằng Augeas không thể phân tích cú pháp một hoặc nhiều tệp. Bạn có thể chạy `augtool error` và đăng đầu ra không?
hymie avatar
lá cờ cn
Cảm ơn bạn @raphink - sự cố đã được giải quyết.
Điểm:1
lá cờ cn

Cảm ơn bạn @raphink

lỗi augtool nói

Lỗi trong /etc/sudoers:96.12 (parse_failed)
  Ống kính lặp đi lặp lại phù hợp ít hơn mức cần thiết
  Ống kính: /usr/share/augeas/lenses/dist/sudoers.aug:530.10-.70:
    Khớp lần cuối: /usr/share/augeas/lenses/dist/sep.aug:47.18-.40:
    Tiếp theo (không khớp): /usr/share/augeas/lenses/dist/sudoers.aug:500.16-501.47:

Vì vậy, tôi đã kiểm tra dòng 96 của /etc/sudoers và nó nói

@includedir /etc/sudoers.d

Rõ ràng, @includedir bây giờ là một cú pháp hợp lệ ngoài cú pháp kiểu cũ hơn #includedir ... nhưng ống kính augeas (của tôi) không nhận ra phiên bản mới.

(* Xem: bao gồm *)
hãy bao gồm =
  [ phím /#include(dir)?/ . Tháng chín.không gian . lưu trữ Rx.fspath . eo ]

tôi đã thay đổi @ đến một # Trong /etc/sudoers và điều đó dường như đã giải quyết được vấn đề.

lá cờ cn
Tuyệt quá. Nếu phiên bản Augeas mới nhất không hỗ trợ cú pháp này, vui lòng mở một sự cố (hoặc tốt hơn nữa là cung cấp PR để khắc phục sự cố).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.