Vấn đề với các đề xuất khác là
- chúng chỉ hoạt động khi bạn có quyền truy cập vào mạng LAN công ty (hoặc VPN)
- bạn phải duy trì tập tin sudoers trên mọi máy tính mọi lúc
- như một phần thưởng, họ đã không làm việc cho tôi - tất cả
Thay vào đó, tôi muốn một cái gì đó
- lưu trữ cả thông tin đăng nhập và truy cập sudo
- được quản lý tập trung
Giải pháp thực tế là sử dụng SSSD và mở rộng lược đồ AD. Bằng cách này, SSSD tìm nạp cài đặt sudo và thông tin đăng nhập của người dùng định kỳ từ AD và duy trì bộ đệm cục bộ của chúng. Các quy tắc sudo sau đó được lưu trữ trong các đối tượng AD, nơi bạn có thể giới hạn các quy tắc đối với máy tính, người dùng và các lệnh, thậm chí - tất cả những điều đó mà không bao giờ chạm vào tệp sudoers trên máy trạm.
Hướng dẫn chính xác là quá dài để giải thích ở đây, nhưng bạn có thể tìm thấy hướng dẫn từng bước và một số tập lệnh để giúp tự động hóa ở đây:
TL; DR:
QUẢNG CÁO
Lấy bản phát hành mới nhất của sudo , lấy tệp doc / lược đồ.ActiveDirectory , sau đó nhập tệp (đảm bảo sửa đổi đường dẫn tên miền theo tên miền của bạn):
ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .
Xác minh nó bằng ADSI Edit: mở bối cảnh đặt tên Schema và tìm lớp sudoRole .
Bây giờ tạo OU sudoers trên root tên miền của bạn, OU này sẽ giữ tất cả các cài đặt sudo cho tất cả các máy trạm Linux của bạn. Trong OU này, tạo một đối tượng sudoRole. Để tạo đối tượng sudoRole, bạn phải sử dụng Chỉnh sửa ADSI, nhưng sau khi được tạo, bạn có thể sử dụng Active Directory Users and Computer để sửa đổi nó.
Giả sử tôi có một máy tính tên là foo32linux , một người dùng tên là stewie.griffin và tôi muốn cho anh ta chạy tất cả các lệnh với sudo trên comp đó. Trong trường hợp này, tôi tạo một đối tượng sudoRole theo OU sudoers . Đối với sudoRole, bạn có thể sử dụng bất kỳ tên nào bạn muốn - Tôi gắn bó với tên máy tính kể từ khi tôi sử dụng quy tắc trên mỗi máy tính. Bây giờ đặt thuộc tính của nó như sau:
- sudohost : foo32linux
- sudoCommand : TẤT CẢ
- sudoUser : stewie.griffin
Đối với các lệnh, bạn cũng có thể sử dụng các mục cụ thể, như / bin / less hoặc bất cứ thứ gì.
SSSD
Thêm vào /etc/sssd/sssd.conf của bạn , ít nhất là:
[sssd]
services = nss, pam, sudo
[domain/AD.FOOBAR.COM]
cache_credentials = True
SSSD làm mới bộ đệm cục bộ của nó với các quy tắc được cập nhật cứ sau vài giờ, nhưng cách đơn giản nhất để kiểm tra nó là chỉ cần khởi động lại máy tính. Sau đó đăng nhập với người dùng AD và kiểm tra:
sudo -l
Nó sẽ liệt kê tất cả các mục nhập liên quan mà bạn đã thêm vào người dùng và máy tính đó. Dễ như ăn bánh!
%Domain^Admins ALL=(ALL) ALL