Certificate Authority (CA): Cơ quan có thẩm quyền để xác nhận SSL
Certificate signing request (CSR): Yêu cầu chứng nhận chứng chỉ SSL
Certificate: Chứng chỉ
II. Các file liên quan trong việc cài đặt HTTPS
Private key file: Như tên gọi nó chính là private key
Certificate signing request(csr): File này được tạo ra sau khi có private key. Khi tạo yêu cầu chứng nhận chứng chỉ, sẽ cần phải cung cấp thêm các thông tin như tên quốc gia, email, và nhiều hơn nữa. Những thông tin được dùng để xác nhận và tạo ra certificate (chứng chỉ), đơn vị tạo ra chứng chỉ được gọi là Certificate Authority. Tuy nhiên cũng có thể tự tạo ra chứng chỉ từ yêu cầu chứng nhận chứng chỉ, vì người chứng nhận không phải là Certificate Authority nên là trên web browser, trình duyệt sẽ hiển thị màu đỏ bên cạnh đường link.
Certificate(chứng chỉ)
Theo như các khái niệm trên thì khi cài đặt HTTPS cho server, chỉ cần private key và certificate. Nếu private key đã được mã hóa thì lúc cài đặt cho server phải nhớ thêm mật khẩu để server có thể giải mã.
III. Các bước liên quan
1a. Lệnh để tạo private key đã mã hóa
openssl genrsa -des3-out domain.key 2048
Lưu ý rằng file domain.key đã được mã hóa. Để sử dụng cho server, cần được giải mã.
-des3: mã hóa private key theo thuật toán `DES` 3 lần.
2048: độ dài của private key
1b. Lệnh tạo private key không được mã hóa
openssl genrsa -out private.key 2048
2. Lệnh để tạo yêu cầu chứng nhận chứng chỉ(csr) từ private key
openssl req -key domain.key -new-out domain.csr
3. Lệnh để tự tạo certificate từ yêu cầu chứng nhận chứng chỉ và private key
Không khuyên khích việc xem manual của openssl rồi tự làm, document của command openssl rất khó hiểu và chỉ mang tính chất tham khảo, đôi khi tự xem rồi không biết thứ tự đâu mà làm.
Ví dụ như lệnh tạo certificate từ private key và csr, xem manual mà ko hiểu nên sắp xếp argument như thế nào cho thích hợp. Tốt nhất là làm theo hướng dẫn.
Trước khi đọc sâu hơn về cách thiết lập replication này, tôi sẽ giải thích về mô hình hot-standby. Ở mô hình này, máy standby sẽ có khả năng bị read (đọc), khi máy primary xảy ra vấn đề, máy standby sẽ được tăng cấp thành primary mới, cho phép nó có khả năng read/write (đọc/ ghi).
Khi áp dụng kỹ thuật này, có thể sử dụng thêm database proxy để giảm áp lực read cho máy primary.
Nói về dữ liệu, 99.999999999% là dữ liệu trên máy standby sẽ giống với máy primary. Lý do mà nó không đạt được đến mức 100% là do khi máy primary chết, máy primary không gửi write-ahead-log cho máy standby được, việc này dẫn đến hệ quả là máy standby không có dữ liệu.
Ở bài viết này, sẽ tập trung nói đến việc làm sao để thiết lập hot-standby replication cũng như cách kích hoạt thủ công hot-standby server để nó trở thành primary server mới. Vấn đề phục hồi primary cũ sẽ được nói ở bài viết tiếp theo.
II. Thiết lập
1. Cài đặt Postgresql (2020-11-04 tested)
Ở bài hướng dẫn này, tôi sử dụng server là Fedora. Hướng dẫn trên mạng rất nhiều để tiện theo dõi trên bài viết tôi sẽ viết lại ở đây.
Bạn vào website: https://www.postgresql.org/download/linux/redhat/, trong phần chỉ mục PostgreSQL Yum Repository, hãy điền hết cái form, sau khi điền xong một đoạn script cài đặt sẽ hiện ra, bạn chỉ việc copy-paste vào terminal là chạy. Việc cài đặt này là tiêu chuẩn và áp dụng trên cả máy primary và standby.
Ví dụ như tôi đang sử dụng fedora 32 x64, muốn xài postgresql-11, sau khi điền xong form, tôi sẽ nhận được đoan script sau:
Để thiết lập relication, thực sự chỉ cần đến user với role là replication mà thôi. Tôi chủ động tạo thêm một superuser mới có tên là admin.
Vào terminal, và chạy lệnh sau:
# Chuyển qua user postgresql trên hệ điều hànhsudo su postgres;# Tao user repuser/repuser
createuser --no-login--pwprompt--replication repuser;# Tạo user admin/admin
createuser --pwprompt--superuser admin;
b. Thay đổi pg_hba.conf để cấp quyền truy cập
host all admin 0.0.0.0/0 md5
host replication repuser {standy_server_ip}/{mask} md5
Ở trên hình thì IP/MASK của máy standby là 192.168.2.43/24.
Lưu ý archive_command, /var/lib/pgsql/11/data/archivedir/ là thư mục cần phải tạo thêm, nếu chưa có hãy tạo nó sử dụng lệnh sau:
mkdir-p /var/lib/pgsql/11/data/archivedir/
Thiết Lập
Ý Nghĩa
listen_addresses
Liệt kê IP được phép truy cập vào database server bằng postgresql client
wal_level
Mức độ chi tiết của wal, để dữ liệu trong file wal đủ chi tiết để phục hồi, giá trị cần là replica
archive_command
command sử dụng để lưu trữ write-ahead-log vào thư mục archive. Ở thiết lập phía trên, nó đầu tiên kiểm tra xem trong thư mục archive có tồn tại file chưa, nếu chưa nó sẽ copy file write-ahead-log vào thư mục archive.
max_wal_senders
Số lượng tối đa wal_senders chạy đồng thời với nhau. Nói một cách khác nó chỉ thị số lượng tối đa các kết nối từ standby server đến primary
wal_log_hints
Config này quan trong trong việc đồng bộ hóa server primary cũ với primary mới.
Kể từ bước này trở đi, máy primary đã có thể khởi động postgresql server.
systemctl start postgresql-11;
3. Thiết lập máy standby
Trước khi chạy các bước tiếp theo, bắt buộc phải tắt postgresql. Đây là bắt buộc
Sau khi chạy xong, bạn sẽ thấy màn hình tương tự như sau.
Thêm vào đó, trong thư mục data sẽ có thêm 2 file
postgresql.auto.conf
recovery.conf
b. Thiết lập file recovery.conf
File recovery.conf được tạo ra từ lệnh pg_basebackup với flag --write-recovery-conf. Nội dung của nó đề cập đến chế độ hiện tại của standby server và vị trị của primary server.
Tôi sẽ sử dụng dbeaver để tạo bảng, thêm record, xóa record trên primary server. Tôi kì vọng là sau khi làm những thao tác trên, dữ liệu trên standby server phải giống với dữ liệu trên primary server.
Để xóa record cho bảng people, tôi chạy câu sql sau:
deletefrompeoplewherename='TTEK';
Khi kiểm tra dữ liệu trên máy primary và máy standby dữ liệu là giống hệt nhau.
IV. Câu kết
Vậy là việc thiết lập hot standby server đã hoàn tất. Ở bài viết tiếp theo, tôi sẽ nói về tình huống server primary chết, server standby chiếm quyền và đóng vai trò là server primary mới. Vấn đề xảy ra khi chúng ta muốn khởi động lại server primary cũ, và muốn lấy toàn bộ dữ liệu mới đc thay đổi trên máy primary mới và thiết lập máy primary cũ trở thành máy standby mới.
Trong quá trình phát triển phần mềm, khả năng rất cao là mỗi dự án chúng ta sẽ cần đến một ngôn ngữ lập trình khác nhau, thêm vào mặc dù là chung ngôn ngữ nhưng phiên bản của ngôn ngữ lập trình thay đổi theo dự án. Việc quản trị ngôn ngữ lập trình và phiên bản của nó là cực kì quan trọng.
Phần mềm mà tôi thích sử dụng đó là asdf https://asdf-vm.com/ . Cách cài đặt thì có thể tìm thấy trực tiếp trên trang chủ của asdf. Bài viết này sẽ nói về những tính năng hay ho mà asdf tôi sử dụng hàng ngày.
Cơ chế hoạt động của asdf là tạo ra một lớp bọc phía bên ngoài cho các executable file , ứng với mỗi phiên bản, asdf sẽ chọn lựa và chạy file tương ứng. Việc quản lý version được làm tự động, lập trình viên chỉ việc config.
1. Cài đặt ngôn ngữ lập trình
ASDF cài đặt nhiều ngôn ngữ lập trình cũng như phiên bản của ngôn ngữ đó giúp bạn, cú pháp đơn giản, không cần config nhiều. Cần lưu ý là bạn phải cài plugin trước, Danh sách plugin có thể tìm ở đây https://asdf-vm.com/#/plugins-all.
Ví dụ như muốn cài elixir, thì bạn sẽ cần elixir-plugin.
Để cài đặt plugin, bạn sử dụng lệnh sau, trong đó elixir là tên plugin.
Để cài đặt ngôn ngữ, chạy lệnh sau, trong đó 1.9.1 là version.
2. Sử dụng bộ ngôn ngữ lập trình
Một dự án sẽ sử dụng rất nhiều ngôn ngữ lập trình, ví dụ như elixir cho backend, nodejs cho frontend, thêm vào đó trong trường hợp tôi dùng elixir tôi cần quan tâm đến cả erlang nữa.
asdf sẽ giúp lập trình viên nhanh chóng chuyển phiên bản của ngôn ngữ lập trình theo dự án.
Ví dụ dưới đây là project_1 và project_2, hai dự án này nằm ở hai thư mục khác nhau. cả hai có điểm chung là đều sử dụng elixir tuy nhiên nhu cầu về phiên bản lại khác nhau, một cái là 1.9.1 , cái còn lại là 1.9.2
Để làm được điều này, nói ngắn gọn bạn sẽ cần tạo file .tool-versions ở mỗi project. Trong file này sẽ liệt kê chi tiết version của language. Như trên hình, khi kiểm tra phiên bản của elixir, phiên bản đã hiển thị khác nhau.
Inside $HOME, there is a directory named ~/.local/share/applications which containts all application shortcuts for the current user.
To make a new application shortcut you need to make a new file named *.desktop with the following schema.
To refresh/update application.desktop, you can use the following command:
If it all works correctly, a new application shortcut will be displayed on Gnome Search.
ZeroSSL is a free ssl certificate provider. I had follow all the instructions on their official website to configure my hostinger domain, but it’s not enough.
At the domain verification step, it declared that Invalid CAA Records eventhough my CNAME record was configured correctly.
Seemingly, Hostinger CCA’s default value is missing something.
The solution is that you need to check the CCA section belonging to DNS Zone. It’s a must to have following yellow records in your CAA list.
If you dont have those records, you need to add it manually one by one. Although, you submit new CAA records, it could take up to 30 minutes for verification.
SELinux một thứ rất đang để học hỏi, nhưng lại khó để thực hành. Đặc biệt là các vấn đề liên quan đến SELinux lại là thứ không phải là thứ xảy ra hàng ngày, hàng giờ.
Chỉ là thi thoảng, khi triển khai máy chủ mới gặp vấn đề, lúc gặp tôi thường là có hai phương án tùy vào tình huống mà:
Tắt luôn SELinux
Đọc, hiểu lý do, viết policy và cài đặt policy cho SELinux.
Cứ mỗi lần triển khải server mới, dính vào nginx, reverse proxy là tôi lại phải nhờ anh google. Lần này tôi quyết định viết lại blog, cũng như là một cách để nhắc nhở mình
cần phải làm gì khi gặp chuyện với SELinux.
I. Xác định xem có phải vấn đề thuộc về SELinux hay không
Cách dễ nhất để biết được nguyên nhân gặp phải thuộc về SELinux đó là chuyển chế độ của SELinux từ Enforce thành Permission. Đây là các lệnh liên quan
getenforce: xem trạng thái của SELinux. Enforce có nghĩa là chặn sạch, block sạch nếu ứng dụng không thỏa mãn luật lệ. Permissive có nghĩa là thông qua, tuy nhiên vẫn sẽ bị log ghi lại.
setenforce: cài đặt trạng thái của SELiux. setenforce 1, chuyển sang chế độ Enforce. setenforce 0 là chuyển sang chế độ Permissive.
Nếu mà chuyển sang chế độ Permissive mà phần mêm chạy ổn áp đúng như mong muốn thì biết lý do là SELinux rồi đấy. Bên cạnh đó, hay chú ý đến cả file log của phần mềm, cuộc đời biết đâu bất ngờ.
II. Xem và hiểu file audit.log
File /var/log/audit/audit.log này cực kì quan trọng chứa thông tin liên quan đến lý do tại sao SELinux lại ngăn chặn phần mềm làm điều này, điều kia. Tuy nhiên khi đọc bằng mắt thường sẽ rất khó hiểu.
Để đọc và hiểu lý do dễ dàng, nên sử dụng lệnh audit2why.
Ví dụ như sau, tôi cat file log, tôi grep các dòng có từ khóa “denied”, tôi tiếp tục sử dụng audit2why để đọc dễ hiểu hơn.
Chắc chắn là khi chạy xong, thông tin sẽ tường mình hơn rất nhiều.
III. Tạo và cài đặt luật lệ để SELinux thông qua
SELinux rất hay ở chỗ nó block phần mêm những nó cũng chỉ rõ ra rằng chúng ta phải làm gì để khắc phục. Đây là một cái rất rất thú vị. Sau
khi đã đọc và hiểu tại sao SELinux block, giờ là lúc bổ sung luật lệ cho SELinux. audit2allow là câu lệnh chúng ta cần.
Câu lệnh trên sẽ tạo ra file my_module.pp. Sử dụng lệnh sau để cài đặt module này vào SELinux.
Sau khi kiểm tra cẩn thận, hay nhớ bật chế độ Enforcing cho SELinux.
Đây là câu chuyện tôi đã trải qua khi phải bắt buộc gia tăng logical volume hệ thống. Trong quá trình phát triển, không gian dữ liệu hệ điều hành chiếm dụng bắt đầu nhiều hơn và nhiều hơn. Đã có những lúc tôi nghịch ngợm với VM, Docker, Backup file quá nhiều, kết cục là ổ cứng 500 GB của tôi dần dần cạn kiệt.
Công ty tôi còn một vài cái ổ cứng 500 GB khác. Tôi quyết định mở rộng logical volume lên thêm nữa sử dụng lợi thế của Logical Volume Manager. Với cách tiếp cận này, việc gia tăng logical volume trở nên đơn giản hơn, với khả năng mở rộng lớn, thực sự là chỉ bị hạn chế bởi số cổng SATA hỗ trợ trên bo mạch chủ.
Vì lý do công nghệ này sử dụng nhiều lớp trừu tượng trung gian. Để giúp các bạn hiểu tôi đang nói về lớp nào tôi sẽ thêm các chú thích về tầng trừu tượng [LEVEL X]. Hình số [1] có chú thích chi tiết từng tầng một.
II. Cách làm
Đây là danh sách những việc phải làm khi muốn mở rộng logical volume[LEVEL 5]. Trường hợp của tôi khá là kẹt khi mà Physical Volume Group hoàn toàn ko còn dung lượng dư. Chính vì như vậy, tôi phải gắn thêm một ổ đĩa cứng mới [LEVEL 1].
Gắn ổ cứng mới [LEVEL 1]
Tạo phân vùng (partition) với định dạng Linux LVM [LEVEL 2]
Tạo physical volume từ phân vùng vừa tạo [LEVEL 3]
Thêm physical volume vừa tạo vào volume group [LEVEL 4]
Thêm dung lượng cho logical volume từ dung lượng trống từ volume group[LEVEL 5]
Cập nhập filesystem
1. Gắn ổ cứng mới
Nghe dễ thật, nhưng tôi lại gặp một vấn đề khác.
Để hệ điều hành nhận ổ cứng mới, tôi đã phải làm theo các bước sau.
2. Tạo phân vùng loại Linux LVM từ ổ đĩa [LEVEL 2]
Cách làm mà tôi sử dụng là phần mềm fdisk. Đây là các chỉ mục quan trọng
Tạo GPG partition table
Tạo phân vùng mới với loại Linux LVM
a. Tạo GPG partition table
Sử dụng lệnh sau với quyền root.
fdisk /dev/sdb
sdb là tên của ổ đĩa. Lưu ý là sdb chứ không phải là sdb1, hoàn toàn không có hậu tố đằng sau. Số 1 ở đây ám chỉ phân vùng chứ không phải là ổ đĩa. Nếu bạn đang gắn ổ cứng thứ 3, ổ cứng của bạn khả năng rất cao sẽ tên là sdc.
Fdisk là phần mềm có nhiều tính năng chết người, Thao tác của phần mềm khá đơn giản, chọn chỉ mục bằng phím, kết thúc bằng enter. Ví dụ để xem hướng dẫn của phần mềm, ấn phím m và kết thúc bằng enter.
Để tạo GPG partition table, hãy chọn chỉ mục có tên là create a new empty GPT partition table.
b. Tạo phân vùngLinux LVM
Chọn chỉ mục có tên là add a new partition
Tiếp theo, tôi sẽ bị yêu cầu nhập
partition number: mặc định
first sector: mặc định
last sector: mặc định
Tôi đã tạo xong phân vùng mới, tuy nhiên định dạng của nó là Linux filesystem, Cái tôi muốn là Linux LVM. Chọn chỉ mục có tên là change a partion type
Phần mềm sẽ chọn phân vùng duy nhất trong trường hợp này là 1. Trong phần chọn loại phân vùng, Linux LVM có mã số là 31.
Kiểm tra lại với chỉ mục có tên print the partition table. Nó nên có phân vùng mới kèm theo là loại phân vùng có tên Linux LVM.
Kết thúc giai đoạn này với chỉ mục mang tên write table to disk and exit
3. Tạo phsyical volume [LEVEL 3]
Tạo physical volume với lệnh sau:
pvcreate /dev/sdb1;
Kiểm tra xem physical volume đã tạo thành công từ /dev/sdb1 với lệnh sau:
pvs;
4. Gán physical volume vào volume group [LEVEL 4]
Tôi cần phải biết xem logical volume mà tôi cần gia tăng thuộc volume group nào. Sử dụng lệnh sau để xem danh sách logical volume hiện đang có cũng như là volume group mà nó thuộc về.
Trong trường hợp của tôi. logical volume mà tôi muốn gia tăng dung lượng là home và root. Cả hai logical volume này thuộc volume group có tên là fedora
Đây là lệnh để tìm xem thông tin của toàn bộ volume group. Hãy chú ý cột VFree, sau khi thêm physical volume vào volume group. giá trị của cột VFree phải tăng lên, tạo tiền đề để gia tăng các logical volume ở bước tiếp theo.
vgs;
Đây là lệnh để gán physical volume /dev/sdb1 vào volume group có tên là fedora.
vgextend fedora /dev/sdc1;
5. Gia tăng dung lượng cho logical volume [LEVEL 5]
Đây là cả chỉ mục cần quan tâm:
Sử dụng lệnh lvextend để gia tăng logical volume
Sử dụng lệnh resize2fs để cập nhật file system
Tôi cần gia tăng logical volume có tên là root và home. Cụ thể là tôi muốn tăng 400 GB cho home và 100% phần còn dư cho root. Đây là cách làm.
Để kiểm tra, hãy sử dụng lệnh sau: lvs. Tuy nhiên filesystem thì hoàn toàn chưa được cập nhật, hãy sử dụng lệnh sau để thấy sự khác biệt df -h, chú ý cột Filesystem, Size và cột Mount on
LVM - Phần mềm quản lý nhiều ổ cứng Logical Volume, tác dụng của LVM đó là cho phép ghép nhiều ổ đĩa cứng với nhau, sau đó tạo ra một lớp trừu tượng trước hệ điều hành. Với lợi thế này, việc gia tăng dung lượng cho hệ điều hành dễ dàng hơn bao giờ hết. Hệ điều hành có thể đang chạy trên hai ổ cứng vẫn đảm bảo được sự trơn tru, đơn giản khi vận hành như đang làm việc với một ổ cứng mà thôi.
Hệ thống từ vựng được sử dụng khi nói đến LVM hơi nhầm lẫn khi dịch qua tiếng Việt
volume: Là một từ trừu tượng, có thể hiểu khi là một cục nào đó chứa dữ liệu
partition: Phân vùng, khi nói đến phân vùng, chúng ta nói đến việc chia ổ cứng thành nhiều phần vùng
physical volume: Khi nói đến LVM, thì physical volume là thứ được tạo ra từ partition
physical volume group: Là nhóm được tạo ra từ nhiều partition
logical volume: Khi nói đến LVM, thì logical volume là volume được tạo ra từ physical volume group
Hiểu nôm na thì ta sẽ có sơ đồ từ vựng thứ tự của các định nghĩa như sau:
II. Các quy trình thường gặp khi làm việc với LVM
a. Tạo logical volume
Tạo phân vùng (partition) có định dạng là Linux LVM từ ổ cứng vật lý. [LEVEL 2]
Sử dụng lệnh fdisk
Tạo physical volume từ phân vùng (partition) vừa tạo [LEVEL 3]
Sử dụng lệnh pvcreate
Tạo physical volume group với physical volume vừa tạo [LEVEL 4]
Sử dụng lệnh vgcreate
Tạo logical volume từ physical volume group[LEVEL 5]
Sử dụng lệnh lvcreate
b. Gia tăng dung lượng cho logical volume
Xác định xem physical volume group cái tạo ra logical volume cần tăng dung lượng xem là nó có còn dung lượng trống hay không. [LEVEL 4]
Sử dụng lệnh vgs, vgdisplay
Nếu còn dung lương trống thì thêm dung lượng vào logical volume[LEVEL 5]
Sử dụng lệnh lvextend, resize2fs
Nếu không còn thì phải thêm physical volume vào physical volume group[LEVEL 3]
Sử dụng lệnh vgextend
Sau đó thì gõ lệnh thêm dung lượng vào logical volume[LEVEL 5]
Sử dụng lệnh lvextend, resize2fs
c. Giảm dung lượng của logical volume
Cực kì nguy hiểm!
Hãy backup trước khi làm việc này. Là người viết, tôi chưa bao giờ thử cái tính năng này. Viết cho nó có chữ thôi chứ, dùng cái tính năng của khỉ này, tôi không dám.
Xác định xem logical volume, bao nhiêu dung lượng đã được sử dụng, dung lượng còn lại có thể giảm được hay không. [LEVEL 5]
Sử dụng lệnh df -h, nó sẽ hiển thị dung lượng sử dụng.
Gõ lệnh để giảm dung lượng của logical volume, dung lượng được giảm sẽ về logical volume group[LEVEL 5]
Sử dụng lệnh lvreduce, resize2fs
III. Các câu lệnh liên quan
Command
Level
Ý nghĩa
lsblk
Level 1, Level 2
Liệt kê danh sách các ổ cứng - hay còn gọi là block devices. Ví dụ như sda, sdb, sdc
fdisk
Level 1, Level 2
Thao tác với ổ cứng ví dụ như tạo phân vùng (partition) trên ổ cứng
pvcreate
Level 3
Tạo physical volume từ phân vùng(partition) trên ổ cứng
pvremove
Level 3
Xóa physical volume
vgcreate
Level 4
Tạo physical volume group từ một hay nhiều physical volume
vgextend
Level 3, Level 4
Thêm physical volume vào physical volume group
vgreduce
Level 3, Level 4
Loại bỏ physical volume khỏi physical volume group
vgremove
Level 4
Xóa logical volume group
vgs, vgdisplay
Level 4
Liệt kê các physical volume group đang có
lvcreate
Level 5
Tạo logical volume từ physical volume group
lvs, lvdisplay
Level 5
Liệt kê các logical volume đang có
lvextend
Level 5
Gia tăng dung lượng cho logical volume
lvreduce
Level 5
Giảm dung lượng cho logical volume
lvremove
Level 5
Xóa logical volume
resize2fs
Level 5
Khi thao tác gia tăng logical volume, lệnh resize2fs được sử dụng để cập nhât filesystem cho logical volume
mkfs
Định dạng cho logical volume ví dụ như là ext2, ext3, ext4 , ntfs. Make File System
IV. Hứa hẹn
Tôi đã gặp tình huống như sau. Tôi có một Đĩa Vật Lý 500GB. Trên ổ đĩa này cài Hệ Điều Hành. Vấn đề đặt ra là làm sao để tôi có thể lắp thêm ổ cứng vật lý mới, tiếp tục sử dụng hệ điều hành bình thường và quan trọng nhất là phải sử dụng lợi thế của Logical Volume Manager.
Trong bài viết tiếp theo, tôi sẽ kể chuyện tôi đã làm như thế nào. Thực tế thì tôi đã cóng tay đến mức phải chạy nháp trên máy ảo trước khi làm thật. Có những chuyện lúc dùng VM không xảy ra, mà đến khi chạy thật mới gặp phải.
Tuy nhiên, sau tất cả thì đến bây giờ mọi thứ vẫn ổn. Tôi khá là tự tin vào cách làm này.
Bài viết này đưa ra cách nhanh nhất để mã hóa cũng như giải mã file trên linux. Việc mã hóa và giải mã sẽ sử dụng mật mã (symmetric-key - key đổi xứng)
I. Mã hóa file
Lệnh này sẽ mã hỏi bạn mật mã, hay ghi nhớ mật mã này. Sau khi quá trình mã hóa kết thúc, một file có tên là tesla.org.gpg sẽ xuất hiện. Đây chính là file đã được mã hóa.
II. Giải mã file
Phần mềm sẽ yêu cầu mật mã. Sau khi quá trình giải mã kết thúc, một file có tên là tesla.org sẽ xuất hiện.
III. Lưu ý.
Nếu mà bạn mã hóa, rồi giải mã ngay lập tức. Khả năng rất cao là khi giải mã phần mềm sẽ không yêu cầu nhập mã. Để yêu cầu gpg hỏi mật khẩu, cần thêm flag --no-symkey-cache,
flag này sẽ rất cần thiết lúc testing.
Đây là hướng dẫn lưu và chạy file config trong game csgo. Dưới đây là ví dụ cụ thể, bạn muốn tập ném smoke,
bạn chắc chắn sẽ phải gõ một đống lệnh mà bạn thậm chí không thể nhớ hết. Bạn không muốn mỗi lần tập ném
smoke lại phải gõ một đống lệnh. Và ngay cả khi có copy/paste, nó cũng quá bất tiện.
Bài hướng dẫn dưới đây giúp bạn khắc phục vấn đề này. Dưới đây là chi tiết cách làm.
Vào và tạo file tại thư mục
Tôi sẽ tạo file có tên là smk.cfg, lưu ý là đuôi file phải là .cfg