Tôi gặp vấn đề với quyền sudo của mình trong thiết lập ủy quyền / xác thực LDAP của Debian ActiveDirectory.
Những gì tôi có cho đến nay
tôi đã cấu hình nslcd với libpam-ldap thông qua ldaps và đăng nhập ssh đang hoạt động rất tốt.
getent passwd myuser
myuser:*:10001:10015:myuser:/home/myuser:/bin/bash
Trên Máy chủ ActiveDirectory của tôi, Gói Unix được cài đặt để thêm các thuộc tính cần thiết như posixgroup, posixAccount, gid, gidNumber, uid, uidNumber, v.v.
Người dùng ví dụ của tôi trông như thế này:
(Tôi chọn 10000+ để ở bên an toàn)
cn: myuser
uid: myuser
uidNumber: 10015
gidNumber: 10000
Tôi có thể hạn chế đăng nhập SSH bằng cách thêm thông tin sau vào /etc/nslcd.conf
filter passwd (&(objectClass=posixAccount)(|(memberOf=CN=group1,OU=groups,DC=domain,DC=com)(memberOf=CN=group2,OU=groups,DC=domain,DC=com)))
Điều này xác định rằng chỉ những người dùng có objecClass = posixAccount và nhóm hoặc nhóm1 hoặc nhóm2 mới có thể đăng nhập.
Càng xa càng tốt. Tuy nhiên, tôi không thể bảo sudo sử dụng các nhóm đó.
Đây là những gì tôi đã thử
trong / etc / sudoers
// This one works, but only because the user has gidNumber=10000 set.
// It doesn't matter if a group with this ID actually exist or not.
// So it's not really permission by LDAP group.
%#10000 ALL=(root) ALL
// This is what I want, but it doesn't work.
%group1 ALL=(root) ALL
Vấn đề
Bằng cách nào đó tôi cần nói với sudo để lấy tên người dùng yêu cầu, kiểm tra xem nhóm ldap đó thuộc về nhóm nào và sau đó xem liệu các quyền cho nhóm đó có đủ để thực hiện lệnh hay không.
Đáng tiếc tôi không biết bắt đầu từ đâu. Mọi thứ khác hoạt động cho đến nay và tôi chỉ bị mắc kẹt với quyền sudo. Tôi đã nghĩ về việc ánh xạ trường gidNumber của người dùng sang trường gidNumber của nhóm nhưng tôi không biết nếu ánh xạ trường người dùng vào trường nhóm thậm chí có thể.
Tôi không nghĩ vậy, vì ánh xạ trong nslcd được chỉ định như thế này
map passwd field1 field2
và passwd nói với nslcd rằng nó phải ánh xạ các trường người dùng. Thay vì passwd tôi có thể sử dụng các nhóm, nhưng không phải cả hai.