GIT – Góc IT gởi đến các bạn thêm các thủ thuật –  Gửi thư từ console: sendEmail, Tips với rename, Kết nối đến một máy tính đằng sau tường lửa, Mở cổng: iptables, tips với sed, Xoá một vài ký tự đầu/cuối trong tên files, Tự động logout khỏi Shell: TMOUT, Bảo mật cho những file hệ thống, Ẩn dữ liệu trong một file ảnh hoặc audio: Steghide, Kill một chương trình thông qua PID.

1.Gửi thư từ console: sendEmail

Nếu bạn muốn gửi thư từ console có thể sử dụng sendEmail.
Cài đặt sendEmail trên :

# apt-get sendemail

Ví dụ:

$ sendEmail -f admin@gocit.vn -t info@gocit.vn -u "Chủ đề" -o message-file=testmail -o message-format=text/html -s mail.gocit.vn -o tls=yes -xu admin@gocit.vn -xp PASS -l log.txt

trong ví dụ trên nội dung thư sẽ là nội dung của tập tin testmail, được gửi từ admin@gocit.vn đến info@gocit.vn  nhờ giao thức SMTP.
ngoài ra các tuỳ chọn:

-u: chủ đề của bức thư
-o message-file=testmail: nội dung trong file testmail sẽ được gửi đi
-s smtp.gmail.com: server dùng để gửi thư
-xu LOGIN -xp PASS: tên người dùng và mật khẩu
-l log.txt: log file.

Hãy man sendEmail để biết thêm cách sử dụng.
Sau khi thực thi bạn sẽ nhận được thông báo dạng:

Aug 14 12:12:12 debian sendEmail[6674]: Email was sent successfully!
From: admin@gocit.vn To: info@gocit.vn Subject: [Chủ đề] Server: [mail.gocit.vn:25]
NOTICE: The log file [log.txt] does not exist. Creating it now with
mode [0600].

chúc mừng bạn , bạn đã gởi thành công email

2.Tips với rename

-Thay đổi cụm abc trong tên file .txt thành def:

$ rename -v "s/abc/def/g" *.txt

-Xoá bỏ số trong tên file:

$ rename -v "s/[0-9]//g" *.txt

-Thêm vào đầu tên file .txt cụm abc:

$ rename -v "s/^/abc/g" *.txt

-Thêm vào cuối tên file cụm abc:

$ rename -v "s/$/abc/g" filename

3. Kết nối đến một máy tính đằng sau tường lửa.

Thông thường một máy tính trong LAN chỉ có thể ra internet nhưng không thể kết nối đến máy tính đó từ bên ngoài. Nếu bạn muốn kết nối đến một máy trong LAN có thể sử dụng ssh tunnel. Trên các máy *nix việc cài đặt openssh rất dễ dàng, còn trên Windows có thể cài đặt openssh trên cygwin .

Thực hiện kết nối:

Trước tiên chúng ta kết nối đến máy bên ngoài từ máy trong LAN, chạy:

$ ssh -f -N -R 99999:localhost:22 username@remote_ip

Với các tham số trên máy tính trong LAN không thể thực hiện một lệnh nào qua ssh, sau đó để kết nối đến máy tính trong LAN từ máy bên ngoài internet, chạy:

$ ssh localhost -p 99999

Chú ý là nếu bạn chạy ssh server trên một cổng khác không phải là 22 thì nhớ thay đổi lệnh trên cho đúng và trên cả 2 máy phải có cùng username.

4.Mở cổng: iptables

Port Forwarding – là động tác chuyển cổng cụ thể trên hệ thống mạng, điều này cho phép kết nối các máy từ bên ngoài với các máy trong mạng nội bộ đó.
Trước hết cần biết rằng mỗi máy tính tồn tại trong một mạng đều có một IP duy nhất, mỗi cổng trong một thời điểm xác định chỉ có thể được sử dụng bởi một chương trình. Giả sử bạn cấu hình Linux như một router, khi đó router sẽ có 2 IP: 1 địa chỉ IP ngoài và 1 địa chỉ IP nội bộ làm việc như một gateway đối với mỗi máy tính trong mạng.
Với mô hình mạng:
Internet —— (eth0) Linux server (router) (eth1) —– LAN: host A.B.C.D
Nếu bạn muốn chạy ftp server trên một máy trong mạng LAN với IP: A.B.C.D tại cổng mật định 21 hãy chạy:

# iptables -t nat -I PREROUTING -p tcp --dport 21 -j DNAT --to A.B.C.D:21
# iptables -I FORWARD -p tcp -d A.B.C.D --dport 21 -j ACCEPT

5. Tips với sed

-In ra dòng thứ n của file:
ví dụ in ra dòng thứ 3 của file.txt:

$ sed -n '3p' file.txt

hoặc:

$ sed '3!d' file.txt

hoặc:

$ sed '3q;d' file.txt

-Thêm chuỗi abc vào đầu của tất cả các dòng:

$ sed -i 's/^/abc/gi' file.txt

-Thay thế string1 bằng string2

$ sed 's/string1/string2/g' file

-Xoá chú thích và những dòng trắng:

$ sed '/ *#/d; /^ *$/d' file

-Thêm dòng trắng ở trên những dòng có cụm hello:

$ sed '/hello/{x;p;x;}'

-Thêm dòng trắng ở dưới những dòng có cụm hello:

$ sed '/hello/G'

-Thêm dòng trắng ở cả trên lẫn dưới những dòng có cụm hello:

$ sed '/hello/{x;p;x;G;}'

-Thêm số thứ tự vào trước mỗi dòng của file và ghi lại với tên khác:

$ sed = filename | sed 'N;s/\n/\t/' > new_file

-Đếm số dòng của file:

$ sed -n '$=' file

-In ra n dòng đầu tiên của file:

$ sed nq

-In ra (n-1) dòng cuối của file:

$ sed -e :a -e '$q;N;n,$D;ba'

-Xoá đi HTML tags của file .htm:

$ sed -e :a -e 's/<[^>]*>//g;/</N;//ba' file.html

6.Xoá một vài ký tự đầu/cuối trong tên files.

Bạn có một album với tên các bài hát bắt đầu bằng số thứ tự dạng: 01, 02, 03… và muốn xoá bỏ chúng khỏi tên files. Sử dụng:

$ ls | while read file; do file_new=`echo "$file" | sed 's/..\(.*\)/\1/g'`; mv "$file" "$file_new"; done

với câu lệnh như trên 2 ký tự đầu trong tên files sẽ bị xoá bỏ.
để xóa 2 ký tự cuối trong tên file sửa lệnh sed thành sed 's/\(.*\).../\1/'

7. Tự động logout khỏi Shell: TMOUT

Sử dụng TMOUT để tự động thoát khỏi shell sau một thời gian định sẵn, hãy gán vào files: .bashrc hoặc .bash_profile dòng:

TMOUT=1200

với giá trị như trên sau 1200 giây bạn sẽ tự động logout khỏi shell.

8.Bảo mật cho những file hệ thống.

Thuộc tính SUID/SGID rất quan trọng, chúng ta nên kiểm tra thường xuyên xem trong hệ thống có những files thực thi nào có thuộc tính SUID/SGID mà không được phép hay không?
Để liệt kê danh sách những files ứng dụng có thuộc tính SUID/SGID, chúng ta sử dụng:

# find / -path /proc –prune –o –type f –perm +6000 -ls

hãy kiểm tra thật kỹ kết quả nhận được, nếu phát hiện được một file nào đó có thuộc tính SUID/SGID một cách không cần thiết, hãy xoá bỏ thuộc tính này bằng cách:

# chmod a-s file_name

9.Ẩn dữ liệu trong một file ảnh hoặc audio: Steghide

Steghide – là một tiện ích cho phép giấu dữ liệu trong một file ảnh hoặc audio. Khi một dữ liệu được giấu trong file ảnh (audio) với Steghide thì bản thân file ảnh (audio) đó không bị thay đổi và bạn vẫn xem ảnh hoặc mở audio một cách bình thường. Steghide hỗ trợ các định dạng JPEG, BMP, WAV và AU files.
Để gắn một file abc.txt vào file image.jpg, sử dụng:

$ steghide embed -cf image.jpg -ef abc.txt
Enter passphrase:
Re-Enter passphrase:
embedding "abc.txt" in "image.jpg"... done

Hãy nhớ mật khẩu để giải phóng file abc.txt, sử dụng:

$ steghide extract -sf image.jpg
Enter passphrase:
wrote extracted data to "abc.txt".

Ngoài ra để biết thông tin về file image.jpg, sử dụng:

$ steghide info image.jpg
"image.jpg":
format: jpeg
capacity: 2,4 KB
Try to get information about embedded data ? (y/n) y
Enter passphrase:
embedded file "abc.txt":
size: 10,0 Byte
encrypted: rijndael-128, cbc
compressed: yes

10. Kill một chương trình thông qua PID.

Nhiều khi một chương trình nào đó bị treo, bạn có thể kill nó hoàn toàn một cách dễ dàng với một command nhỏ như sau, ví dụ với firefox:

$ ps aux | grep firefox | kill -9 `awk '{print $2}'`

với câu lệnh trên ps aux để liệt kê mọi tiến trình sau đó ta bắt lấy những thằng firefox bằng grep firefox và kill tất cả những tiến trình của firefox với kill -9 PID_number, ở đây chúng ta lấy được PID number của firefox dựa vào awk.
Để tiện sử dụng có thể viết một script nhỏ, dạng:

$ vi killproc.sh
#!/bin/sh
ps aux | grep $1 | grep -v "grep $1" | kill -9 `awk '{print $2}'`

sau đó:

$ chmod +x killproc.sh

và khi muốn kill một chương trình nào đó (ví dụ firefox), chạy:

$ ./killproc.sh firefox

Bài viết này nằm trong dự án  website : www.gocit.vn, forum hổ trợ forum.gocit.vn , xem thêm tại link http://www.gocit.vn/du-an-linux-toan-tap/
Print Friendly

Comments

comments

Bài viết liên quan