2010-01-13 31 views
6

Tôi cần phải đồng bộ hóa tài khoản người dùng và mật khẩu với nguồn bên ngoài trên hệ thống với busyboxopenssl được cài đặt. Khi nguồn bên ngoài yêu cầu hệ thống của tôi cập nhật bằng chứng xác thực, làm cách nào để thay đổi mật khẩu của người dùng trong tập lệnh? Tôi sẽ có mật khẩu ở dạng văn bản thuần túy.Làm cách nào để thay đổi mật khẩu người dùng trong tập lệnh bằng busybox và openssl?

Điều này phải được tự động hóa và từ những gì tôi có thể nói với passbox của busybox là tương tác và tôi không đặc biệt muốn viết kịch bản kiểu mong đợi cho passwd nếu có thể. Có vẻ như openssl có thể tạo ra băm mật khẩu (openssl passwd -1 -salt "abcdefgh" {password}), nhưng tôi có phải sửa đổi trực tiếp/etc/shadow không?

Busybox có these lệnh khả dụng.

Trả lời

6

Bạn có thể viết một tập lệnh nhỏ như thế này để cập nhật mật khẩu. Đặt văn bản sau vào một tệp và thực thi nó. Nó sẽ thay đổi mật khẩu của bạn.

#!/Bin/sh
passwd < < EOF
< mật khẩu cũ >
< mới mật khẩu >
< mới mật khẩu >
EOF

5

Tắt phiên bản hiện tại của hộp bận có chpasswd (source code). chpasswd lấy tên người dùng cặp phân cách bằng dấu hai chấm: mật khẩu trên stdin. Tôi không biết liệu tôi có thể cập nhật busybox trên hệ thống của mình hay không, nhưng tôi sẽ để lại câu trả lời này trong trường hợp có người khác tìm kiếm.

Từ tài liệu busybox:

chpasswd 
chpasswd [--md5|--encrypted] 

Read user:password from stdin and update /etc/passwd 

Options: 

     -e,--encrypted Supplied passwords are in encrypted form 
     -m,--md5  Use MD5 encryption instead of DES 
Các vấn đề liên quan