Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

20 tháng 6, 2014

Cấu trúc tập tin /etc/shadows trong Linux

Tập tin /etc/shadow là một phương thức khác của Linux để lưu thông tin mật khẩu đăng nhập của người dùng hệ thống.
Thông tin được lưu tại đây sẽ an toàn hơn so với cách lưu trong tập tin /etc/passwd do tập tin này chỉ có tài khoản root hoặc có quyền sudo mới có thể truy cập.
Dưới đây là định dạng mỗi dòng trong tập tin /etc/shadow:
hduser:$6$nRDJ.w8b$wqH4G72KtYbUs:16038:0:99999:7:::
  •  Các trường trong /etc/shadow được phân cách với nhau bằng dấu ":"
  • Trường đầu tiên là username.
  • Trường thứ 2 là mật khẩu đã được mã hóa; nó có thể bắt đầu bằng ký tự $, khi đó ký tự tiếp theo sẽ là thuật toán mã hóa áp dụng cho mật khẩu.
    • $1 = MD5 hashing algorithm. 
    • $2 = Blowfish Algorithm is in use. 
    • $2a = eksblowfish Algorithm
    •  $5 = SHA-256 Algorithm 
    •  $6 = SHA-512 Algorithm
  • Trường thứ 3 là khoảng thời gian (tính bằng ngày) tính từ 1/1/1970  cho tới lần đổi mật khẩu gần nhất.
  • Trường thứ 4 là thời gian tối đa còn cho phép người dùng đổi mật khẩu, nếu là 0 tức là người dùng có thể đổi mật khẩu bất cứ khi nào, nếu là số khác 0, ví dụ 9, tức là người dùng còn 9 ngày nữa có thể đổi mật khẩu.
  • Trường thứ 5 là thời gian hiệu lực tối đa của mật khẩu, nếu là 99999 có nghĩa là vô hạn.
  • Trường thứ 6 là khoảng thời gian trước khi mật khẩu hết hạn, hệ thống sẽ cảnh báo cho người dùng, ở đây là 7, tức là trước khi hết hạn 7 ngày, hệ thống sẽ cảnh báo.
  • Trường thứ 7 là khoảng thời gian mà tài khoản đã hết hạn đăng nhập, ví dụ nếu là 2 tức là người dùng đã hết hạn đăng nhập 2 ngày.
  • Trường thứ 8 là khoảng thời gian mà tài khoản đã hết hạn đăng nhập tính từ ngày 1/1/1970 (đơn vị tính là ngày)
Ngoài ra trong file /etc/shadow còn có thể có chứa một số ký tự đặc biệt để dùng vào một số mục đích riêng như sau:
  • Nếu trường password rỗng tức là người dùng không có mật khẩu đăng nhập.
  • Nếu trường password là "!" tức là đăng nhập bằng mật khẩu của người dùng bị chặn nhưng có thể đăng nhập bằng phương thức khác, ví dụ sử dụng ssh key.
  • Nếu trường password là "*LK*" hoặc "*" tức là tài khoản bị khóa, không thể đăng nhập bằng mật khẩu nhưng vẫn có thể đăng nhập bằng phương thức khác.

06 tháng 6, 2014

Ads block trong Android

Bài này tôi xin mạn phép đứng về phía các lập trình viên nhé.
         Trước hết tôi nói sơ qua về Admob. Đây là một dạng quảng cáo mà bạn thường xuyên nhìn thấy trong một ứng dụng, thường là miễn phí trên các thiết bị di động. Và rất nhiều người sử dụng rất là không thích việc hiển thị này vì những lý do như: nặng máy, tốn tiền internet,... Tuy nhiên tôi xin phép nói rằng các bạn chơi như thế là không đẹp. Vì sao? Vì người ta đã bỏ công sức viết cho bạn ứng dụng miễn phí, thì ít ra bạn cũng có thể ủng hộ người ta hiển thị quảng cáo để họ còn kiếm tiền cơm cháo qua ngày mà tiếp tục làm các ứng dụng khác cho bạn chứ? ^.^
         Chính vì đứng ở phía lập trình viên nên tôi sẽ không tập trung hướng dẫn bạn cách để chặn các admob này. Nếu muốn bạn có thể tham khảo một số link sau để biết cách:
http://www.howtogeek.com/140576/how-to-edit-the-hosts-file-on-android-and-block-web-sites/
http://forum.xda-developers.com/showthread.php?t=1916098
         Bạn nào ngại đọc tiếng Anh thì tôi sẽ có một bài viết hướng dẫn riêng cho bạn sau.
         Ở đây tôi chỉ viết cách để hướng dẫn các bạn remove tính năng Ads block này đi thôi.
         Như bạn đã biết, nguyên tắc của các ứng dụng chặn Admob phổ biến bây giờ là tác động vào tập tin hosts của hệ thống (/system/etc/hosts) bằng cách thêm dòng có cấu trúc như sau:
127.0.0.1 linkshighway.net 
Trong đó 127.0.0.1 là địa chỉ loopback localhost của hệ thống (thuật ngữ này hình như sai ^.^, nhưng ý tôi là thế) và linkshighway.net là địa chỉ cần chặn.

Theo như dòng trên thì bất cứ khi nào thiết bị của người dùng muốn kết nối tới địa chỉ linkshighway.net thì thay vì kết nối thực sự đến nó, thiết bị lại kết nối quay trở lại chính mình và như vậy là màn hình quảng cáo sẽ không hiện ra được.
Nói tới đây thì bạn chắc đã hiểu nguyên tắc để hiện lại quảng cáo rồi nhỉ?
Rất đơn giản, bạn chỉ cần xóa bỏ các dòng có cấu trúc như này trong file hosts đi là được.
Cách làm như sau:
  • Chuyển quyền cho tập tin hosts sang dạng ghi, nếu không bạn sẽ gặp lỗi khi copy đè file gốc.
  • Copy tập tin hosts sang máy tính để sửa nội dung (dĩ nhiên bạn có thể sửa ngay trên máy android nhưng sẽ rất là phiền phức nếu nội dung của file hosts này lên tới hàng ngàn dòng) bằng lệnh:
adb pull /system/etc/hosts F:\hosts
         /system/etc/hosts là vị trí tập tin hosts trên thiết bị android
         F:\hosts là nơi lưu tập tin hosts trên máy tính.
  • Giờ thì bạn xóa hết các dòng kiểu trên đi.
  • Sau đó bạn copy tập tin hosts này quay trở lại thiết bị bằng lệnh:
adb push F:\hosts /system/etc/
Thế là xong.
Chúc bạn thành công.