định dạng tập tin mật khẩu ldapsearch


18

Làm thế nào tôi có thể chuyển mật khẩu để ldapsearchsử dụng -y <password file>tùy chọn?
Nếu tôi viết mật khẩu trong tệp mật khẩu bằng văn bản thuần túy, tôi sẽ gặp lỗi này:

ldap_bind: Invalid credentials (49)
    additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772

Điều tương tự xảy ra nếu tôi sử dụng -w <password>tùy chọn.

EDIT :
Lệnh tôi đang chạy là

ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"

Trường hợp tập tin .pass.txtchứa mật khẩu của tôi, trong văn bản đơn giản. Cả DN và mật khẩu đều đúng. Nếu tôi chạy lệnh với -Wtùy chọn và nhập mật khẩu vào dấu nhắc thì lệnh sẽ chạy thành công, nhưng tôi muốn lưu trữ mật khẩu bằng cách nào đó để tạo tập lệnh.


Bạn đang sử dụng loại "tập tin mật khẩu" nào? Bạn có thể muốn cho chúng tôi thấy lệnh hoàn chỉnh mà bạn đang gõ. Bạn đang sử dụng thông tin liên kết chính xác?
solefald

Câu trả lời:


22

Hãy nhớ rằng ldapsearch sẽ sử dụng toàn bộ nội dung của tệp cho mật khẩu - điều đó có nghĩa là nó SILL bao gồm một ký tự dòng mới kết thúc nếu tồn tại. Để xác minh xem đây có thực sự là vấn đề của bạn không, hãy thử tạo một tệp không có:

echo -n ThisIsaBadPassword > .pass.txt

( CẬP NHẬT : Đã bao gồm '-n')


1
Tôi mới thử điều đó, nhưng tôi nhận được chính xác lỗi tương tự ...
Paolo Tedesco

2
Không, nó sẽ không. Bạn cần echo -nhoặc printfđể tránh dòng mới.
dùng1686

Tiếng vang -n đã làm mánh khóe! Cảm ơn mọi sự giúp đỡ của bạn.
Paolo Tedesco

Theo dõi bình luận của grawity, echo -n hoạt động hoàn hảo, ví dụ: echo -n "secretpassword"> /etc/ldapscripts/ldapscripts.passwd
Ned W.

Vấn đề gây phiền nhiễu được giải quyết do điều này, cảm ơn. Tôi chỉ sử dụng sedđể loại bỏ phần cuối của một tập tin hiện có.
dâyfox

1

Giả sử đó là giới thiệu lại dòng mới / vận chuyển, hãy thử như sau:

cat .pass.txt | tr -d '\n\r' > .pass2.txt

Sau đó sử dụng tệp .pass2.txt. Bạn luôn có thể kiểm tra các dòng mới và lợi nhuận vận chuyển cat -vEvà chúng sẽ hiển thị tương ứng là $ và ^ M.

Bạn cũng có thể làm -y <(cat .pass.txt | tr -d '\n\r')trực tiếp trong lệnh ldapsearch.


0

ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com

Bạn có thể phải chmod 600 pass.txt


-2

Không cần phải đổ mật khẩu vào một tập tin thực tế. Chỉ cần lặp lại nó với cờ -n để ngăn dòng mới, sau đó đọc nó từ bộ mô tả tệp STDIN (/ dev / fd / 0) như sau:

echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.x.x -b "dc=x,dc=y" "cn=*"

Vấn đề với cách tiếp cận này là nó khiến bạn phải chịu lịch sử shell và PS để khám phá mật khẩu của mình.
Csseller

1
Điểm lấy. Bây giờ là giữa năm 2018. Tôi đã học được từ những sai lầm của mình. Đừng nghiêm túc trong năm 2014 của tôi. Cảm ơn bạn. :)
Brian Showalter
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.