2012-06-28 28 views
5

Tôi đang tìm cách thay đổi mật khẩu của người dùng root trên hệ thống Linux thông qua tập lệnh bash, mà không cần khởi động hệ thống. Những điều duy nhất tôi đã tìm thấy cho đến nay là để loại bỏ mật khẩu, hoặc sử dụng một chroot, mà tôi không thích sử dụng.
Tôi biết cách xóa mật khẩu gốc, nhưng tôi cần thay đổi mật khẩu đó thành mật khẩu khác được xác định trước đó trong tập lệnh.
Tôi có quyền truy cập root vào toàn bộ hệ thống tệp.
Hệ thống đang sử dụng mật khẩu bóng tối, có cách nào để tạo mật khẩu bóng được mã hóa mà không cần đăng nhập/chroot không?
Bất kỳ cách nào khác để thay đổi mật khẩu gốc từ tập lệnh?Thay đổi mật khẩu gốc từ tập lệnh

+1

Một số lời khuyên [ở đây] (http://mywiki.wooledge.org/BashFAQ/078). Có những con đường. Nó phụ thuộc vào nền tảng. – ormaaj

+0

Cảm ơn bạn đã trả lời. Điều này thực sự có thể là giải pháp. Tôi không biết Debian có lệnh mkpasswd, sẽ thử điều này và báo cáo lại. – SharkWipf

Trả lời

8

Băm mật khẩu nằm trong /etc/shadow. Bạn chỉ có thể thay thế nó bằng một băm được tạo ra (muối). Định dạng cho băm mật khẩu được mô tả trong crypt (3). Giá trị mặc định là DES, nhưng trên các hệ thống glibc2 nó có thể chứa một trong những phương pháp mã hóa khác nhau:

ID | Method 
--------------------------------------------------------- 
1 | MD5 
2a | Blowfish (not in mainline glibc; added in some 
    | Linux distributions) 
5 | SHA-256 (since glibc 2.7) 
6 | SHA-512 (since glibc 2.7) 

Vì vậy, một chuỗi mật khẩu bóng có thể trông như thế này: $5$saltysalt$KhboodWTnuXJ5siXvWx5mxYXbnuNJOxROfD1inCILfD

Trong trường hợp này là người đầu tiên $ 5 $ một phần cho biết đó là một băm SHA-256, phần giữa là muối và phần còn lại là băm thực tế.

Để tạo một, sử dụng tốt nhất hầm mộ của hệ thống (3) chức năng, ví dụ với một chương trình C tối thiểu:

#include <stdio.h> 
#include <crypt.h> 

int main(int argc, char *argv[]) { 
     printf("%s\n", crypt(argv[1], argv[2])); 
} 

Compile với cc mkpass.c -o mkpass -lcrypt và sau đó chạy với mật khẩu và muối chuỗi rõ để tạo ra một chuỗi bạn có thể đặt vào /etc/shadow:

./mkpass yourpassword yoursalt     # DES (default) 
./mkpass yourpassword '$6$yoursalt$encrypted' # SHA-512 (quote your $) 

Biểu mẫu thứ hai có thể không được hỗ trợ trên các hệ thống Linux cũ hơn. Nhìn tốt nhất chuỗi hiện có trong tệp bóng của bạn và sử dụng cùng loại băm (từ danh sách $ id $ ở trên cùng).

+0

Điều này làm việc hoàn hảo, cảm ơn! – SharkWipf

-1

Nhấn e trên tab Ubuntu trong màn hình menu lựa chọn OS. Cập nhật lệnh như sau

rw init=/bin/bash 

Nó sẽ thả bạn vỏ gốc Linux. Thay đổi mật khẩu gốc của bạn bằng cách chỉ cần nhập lệnh có tên là passwd root.

Các vấn đề liên quan