Xem mật khẩu user trên linux
Giống như nhiều thứ trên Linux, mật khẩu được quản lý dễ dàng nhất trực tiếp từ dòng lệnh. Tiện ích passwd được thiết kế cho phép bạn nhanh chóng và dễ dàng truy cập vào tất cả các lệnh liên quan đến mật khẩu trên hệ thống. Bạn có thể sử dụng nó để thay đổi và quản lý mật khẩu của mình cũng như mật khẩu người dùng khác trên hệ thống. Ngoài ra, bạn có thể sử dụng nó để tắt xác thực mật khẩu cho một người dùng cụ thể, khóa tài khoản người dùng và thiết lập thời gian hết hạn mật khẩu bắt buộc để giữ an toàn hệ thống. Bài viết này sẽ hướng dẫn các bạn cách sử dụng tiện ích passwd để quản lý mật khẩu trong Linux. Show Thay đổi mật khẩuĐầu tiên, công việc đơn giản nhất bạn có thể làm với tiện ích passwd là thay đổi mật khẩu của bạn chỉ với lệnh passwd. passwd Nó sẽ yêu cầu bạn cung cấp mật khẩu hiện tại của mình theo sau đó là mật khẩu mới của bạn. Thay đổi mật khẩu của người dùng khácVới quyền root hoặc sudo, bạn cũng có thể thay đổi mật khẩu của người khác. Bạn chỉ cần cung cấp tên người dùng tài khoản muốn đổi cho passwd. sudo passwd username Lưu ý: Usename là tên người dùng Với lệnh này, bạn không cần cung cấp mật khẩu hiện tại. Nó chỉ yêu cầu bạn thiết lập một mật khẩu mới. Khóa mật khẩu tài khoản người dùngBạn có thể dễ dàng khóa tài khoản của người dùng bằng cách khóa mật khẩu của họ. Điều này sẽ khiến họ không thể đăng nhập bằng mật khẩu. Các phương pháp khác, như khóa SSH, sẽ vẫn hoạt động. Để khóa tài khoản, bạn sẽ cần sudo và cờ -l. sudo passwd -l username Bạn cũng có thể mở khóa tài khoản bằng cờ -u. sudo passwd -u username Khóa quyền rootNếu vì lý do bảo mật, bạn muốn khóa tất cả quyền truy cập vào tài khoản root, để sudo là cách duy nhất quản lý hệ thống, bạn có thể thực hiện điều đó với lệnh sau: sudo passwd -l root Nó hoạt động tương tự với người dùng khác. Không sử dụng mật khẩuBạn cũng có thể chọn để thiết lập tài khoản người dùng không cần mật khẩu. Tuy nhiên đây không phải là ý tưởng tốt đối với bảo mật nhưng bạn có thể tránh nhiều rắc rối như có máy tính đa phương tiện mà bạn không cần phải bảo mật theo cách đó. Để thực hiện điều này, sử dụng passwd với một cờ đơn giản để xóa mật khẩu người dùng. sudo passwd -d username Thiết lập giới hạn thời gian cho mật khẩu người dùngViệc thiết lập thời hạn cho mật khẩu khá phổ biến. Đây là biện pháp bảo mật tốt, ngăn mật khẩu người dùng cũ khỏi xâm nhập hệ thống. Nếu bạn đang chạy hệ thống sử dụng trong kinh doanh, thật khó để kiểm soát mật khẩu của họ và liệu họ có xâm nhập vào hệ thống hay không. Yêu cầu họ thay đổi mật khẩu sau một khoảng thời gian nhất định sẽ buộc người dùng phải làm mới mật khẩu và giảm nguy cơ vi phạm. Sử dụng cờ -x theo sau số ngày bạn muốn mật khẩu của người dùng hợp lệ. sudo passwd -x 30 username Lệnh trên thiết lập thời gian mật khẩu người dùng sẽ hết hạn sau 30 ngày. Bạn cũng có thể thiết lập một hệ thống để cảnh báo người dùng rằng mật khẩu của họ sắp hết hạn. Sử dụng cờ -w với số ngày trước khi hết hạn để tự động cảnh báo người dùng thay đổi mật khẩu của họ. sudo passwd -w 5 username Nếu biết có sự cố với mật khẩu của người dùng, bạn có thể tự động làm cho mật khẩu của họ hết hạn. Điều này sẽ buộc họ phải đặt một mật khẩu mới ngay lập tức. sudo passwd -e username Passwd là một công cụ vô giá đối với các quản trị viên Linux. Thậm chí nếu bạn không chạy một máy chủ doanh nghiệp, bạn vẫn có thể tận dụng lợi thế của passwd để giữ máy tính cá nhân của mình an toàn hơn. Chúc các bạn thực hiện thành công! Xem thêm:
List user và file /etc/passwd trên Linux Trên linux OS có những user nào? Trường hợp muốn xem danh sách user thì có thể confirm qua file /etc/passwd 1. Cách xem file /etc/passwd Thông tin của user có thể confirm dựa trên file /etc/passwd. User name, password, user ID, group ID, comment (Tên thật hoặc số đt…) Home directory, Login shell sẽ được ghi lại. [[email protected] ~]$ cat /etc/passwd hogehoge: là User name ** Note: 2. /etc/passwd và /etc/shadow Trong bản cập nhật mới nhất thì hầu hết「 x 」được ghi lại ở vị trí password [[email protected] ~]# ls -l /etc/shadow 3. Output list user từ file /etc/passwd Có thể output list user từ file /etc/passwd như sau: [[email protected]
~]$ cut -d: -f1 /etc/passwd Có thể dùng command “alias” để đăng ký trước 1 số thực thi thì khá là tiện. Do ở UNIX cũng có 1 command tương tự đó là “listusers” nên để command execute ngay sau khi login vào OS thì, ở thư mục home directory có thể ghi thêm vào「.bashrc」như sau: [[email protected] ~]$ cd [[email protected] ~]$ source .bashrc ** Note Trong package glibc-common, có 1 lệnh được gọi là getent. Nếu run command đó với option「passwd」thì có thể output được danh sách user bao gồm account ldap [[email protected] ~]$ getent passwd Tham khảo http://kazmax.zpp.jp/linux_beginner/etc_passwd.html Nếu bạn là người quản trị hệ thống Linux thường xuyên thì việc login/logout vào hệ thống là điều mặc định hiển nhiên. Trên màn hình đăng nhập, Linux yêu cầu bạn nhập username/password, nếu bạn nhập chính xác thì bạn đăng nhập thành công vào hệ thống. Vậy điều gì đã xảy ra khi bạn nhập username/password, Linux xử lý dữ liệu đó như thế nào? mật khẩu người dùng lưu ở đâu? cơ chế xác thực như thế nào? Trong bài viết này, tôi tập trung vào tìm hiểu cách linux lưu trữ mật khẩu người dùng. Trong Linux, file /etc/passwd là file lưu thông tin user của hệ thống, khi bạn tạo một user mới thì linux sẽ add thêm 1 bản ghi mới vào file này. Bạn dùng lệnh để show quyền truy cập file này thì thấy file này có 1 đặc điểm là tất cả người dùng trong hệ thống đều có thể đọc được (‘r’). [[email protected] ~]# ll /etc/passwd -rw-r--r-- 1 root root 1373 Apr 1 13:50 /etc/passwd Điều này khá nhạy cảm vì thông tin user sẽ bị phơi bày trước bất kỳ user nào trong hệ thống. Tuy nhiên thuộc tính ‘r’ là cần thiết vì một số ứng dụng và tool hệ thống cần đọc file này thì mới chạy chính xác. Giả sử, tôi thay đổi quyền truy cập file này để chỉ có ‘root’ mới có quyền đọc. [[email protected] ~]# chmod 600 /etc/passwd [[email protected] ~]# ll /etc/passwd -rw------- 1 root root 1373 Apr 1 13:50 /etc/passwd Bây giờ, điều gì sẽ xảy ra khi tôi chuyển sang một user thường có sẵn trên hệ thống: [email protected] ~]# su - mario id: cannot findname foruser ID 500 id: cannot findname foruser ID 500 [I have no [email protected] ~]$ Oh, tôi không thể thay đổi chuyển sang tài khoản có tên là mario, bới vì nó sẽ không đọc được file /etc/passwd nên không thể lấy thông tin username, home directory..của mario được lưu trữ trong file /etc/passwd. Vì vậy, cần lưu trữ password người dùng trong 1 file mà chỉ ‘root’ mới đọc được. Giải pháp mà Linux đưa ra là bổ xung 1 file tên là /etc/shadow để lưu trữ mật khẩu người dùng. File /etc/shadow này chỉ truy cập được bởi ‘root’. [[email protected] ~]# ll /etc/shadow -r-------- 1 root root 897 Apr 1 13:50 /etc/shadow Bây giờ, thử xem nội dung file /etc/shadow [[email protected] ~]# cat /etc/shadow mario:$1$0XJ4dcSP$wpBqBzQSmIppMPEjeYP8K/:16161:0:99999:7:::
2. Trường thứ 2 đó là trường password đã được mã hóa $1$0XJ4dcSP$wpBqBzQSmIppMPEjeYP8K/. Đây chính xác là trường tôi cần quan tâm và cần khai thác ở bài post này Nội dung password đã được mã hóa $1$0XJ4dcSP$wpBqBzQSmIppMPEjeYP8K/ có ý nghĩa gì? - Trường đầu tiên, cho biết thuật toán sử dụng để băm(trong ví dụ này là 1 – MD5 hashing algorithm) $1 = MD5 hashing algorithm. $2 = Blowfish Algorithm is in use. $2a = eksblowfish Algorithm $5 = SHA-256 Algorithm $6 = SHA-512 Algorithm - Trường thứ 2 là một chuỗi dữ liệu ngẫu nhiên(random data hay còn gọi là salt) được sinh ra để kết hợp với mật khẩu người dùng(user password), để tăng sức mạnh băm(trong ví dụ này là 0XJ4dcSP) - Trường thứ 3 là giá trị băm của salt + user password(trong ví dụ này là wpBqBzQSmIppMPEjeYP8K/) Khi bạn login vào hệ thống, bạn nhập user/password. Hệ thống sẽ sử dụng giá trị salt của user + password mà bạn nhập vào để tạo ra 1 chuỗi mã hóa. Nếu chuỗi mã hóa này trùng với chuỗi mã hóa trong file /etc/shadow thì user login thành công. Nguồn http://securitydaily.net/ |