Life would be so much simple if we don't care so much

Trong linux có 1 quyền truy cập đặc biệt được gọi là SUID(Set User ID). Trong bài này sẽ giải thích về SUID (Set User ID)

1. SUID (Set User ID) là gì?

SUID (Set User ID) là quyền truy cập đặc biệt được thiết lập với file và cho phép execute file
Thông thường, khi thực thi thì file sẽ được execute với quyền thực thi của user run file đó nhưng file được thiết lập SUID (Set User ID) thì nó được thực thi với quyền của user owner

Trong list các command được đưa vào sử dụng trong Linux, thì có command dùng để setting SUID (Set User ID). Chẳng hạn như command passwd cũng có tác dụng liên quan đến setting này.

2. Cách confirm setting SUID (Set User ID)

Có thể dùng ls -l để check xem SUID (Set User ID) có được setting hay không,

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22984 1月 7 2007 /usr/bin/passwd
Phần permisssion của ownership sẽ trở thành「rws」. Quyền execute file thông thường là 「x」 nhưng ở đây sẽ trở thành 「s」tức là SUID (Set User ID) đang được thiết lập.

*** Note
Command passwd để cập nhật các file /etc/passwd, /etc/shadow mà thông thường thì general user sẽ không update được.
Common user khi thưc thi command này, vì SUID đang được setting cho command passwd, sau đó thực thi với quyền root nên có thể cập nhật được các file /etc/passwd, /etc/shadow.

3. Setting SUID (Set User ID)

Để setting SUID (Set User ID) thì chỉ định command chmod như sau

chmod u+s file

Ở numeric mode trường hợp set quyền truy cập thì sẽ cộng thêm vào giá trị 4000. Chẳng han, nếu muốn setting SUID cho file thực thi có quyền truy cập 755 thì giá trị được overwrite thành 4755

chmod 4755 file

4. Các sample sử dụng

Thực tế, thử confirm các hoạt động của setting SUID (Set User ID) như dưới đây.

# id 現在rootアカウント
uid=0(root) gid=0(root) 所属グループ=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

# cp /bin/touch .  ← copy command touch
# chown user1 touch  ← set owner của command touch thành user1
# chmod u+s touch  ← setting SUID

# ls -l touch
-rwsr-xr-x 1 user1 root 42284 7月 25 12:39 touch ← setting SUID

# ./touch test.txt ← sử dụng command đã set SUID để tạo file test.txt

# ls -l test.txt
-rw-r–r– 1 user1 root 0 7月 25 12:39 test.txt ← owner của file test.txt lúc này sẽ trở thành user1
Bởi vì touch command đã được run bởi root thì owner của test.txt lúc đầu sẽ là root.
Để setting SUID cho command touch thì khi command được thực thi với owner là user1 thì owner của file được tạo ra cũng sẽ là user1.

Bài viết nguồn ở đây

Cách phát hiện các service cần thiết nên restart sau khi update package trong Linux

Mở đầu

Để giảm bớt lỗi hệ thống thì việc update system là thường xuyên phải được tiến hành nhưng đối với hệ thống đang vận hành trên real thì chúng ta muốn giảm tối đa những ảnh hưởng đến các service.
Sau khi update hệ thống, nếu có thể thì chúng ta muốn hoàn tất việc restart chỉ những process cần thiết nhưng nên restart những process nào thì tốt? Cơ bản là nếu không restart OS thì sẽ không phản ánh được những thay đổi chăng? Các trường hợp không cần phải restart OS thì cũng không ít.

Đối với những trường hợp như vậy, thì cần phải tìm ra những process cần thiết cần được restart, có command để check được advice có cần phải restart system hay không?

Hệ Redhat
Sử dụng Package「yum-utils」có chứa command「needs-restarting

# needs-restarting -h
Usage:
    needs-restarting: Report a list of process ids of programs that started
                    running before they or some component they use were updated.

Options:
  -h, –help        show this help message and exit
  -u, –useronly    show processes for my userid only
  -r, –reboothint  only report whether a full reboot is required (returns 1)
                    or not (returns 0)
  -s, –services    list the affected systemd services only
Trường hợp dùng RHEL/CentOS thì các option「-r、-s」được thêm vào từ ver7.3 trở lên  ⇒
Release note (https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.3_Release_Notes/index.html)

1.Install  

# yum install yum-utils

2.Test thử bằng cách update openssl

# yum update openssl

3.Hiển thị các process cần phải update

# needs-restarting | sort -g
805 : /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s3.pid -lf /var/lib/NetworkManager/dhclient-3b2440fa-27a4-4e0e-8549-888b68d3f2d4-enp0s3.lease -cf /var/lib/NetworkManager/dhclient-enp0s3.conf enp0s3
1011 : /usr/bin/python -Es /usr/sbin/tuned -l -P
1023 : /usr/sbin/sshd
1129 : /usr/libexec/postfix/master -w
1147 : pickup -l -t unix -u
1148 : qmgr -l -t unix -u
1296 : sshd: root@pts/0  

4.Thêm option「-s, –services」để hiển thị service name của systemd

# needs-restarting -s | sort
NetworkManager.service
postfix.service
sshd.service
tuned.service

5.Restart service, confirm lại 1 lần nữa

# systemctl restart NetworkManager postfix sshd tuned

# needs-restarting
#  ← ★Các process nên được restart đều đã biến mất★

6.Tuy nhiên nếu thêm option -r và confirm thì sẽ được recommend thực hiện reboot 
# needs-restarting -r
Core libraries or services have been updated:
  openssl-libs -> 1:1.0.1e-60.el7_3.1

Reboot is required to ensure that your system benefits from these updates.

More information: https://access.redhat.com/solutions/27943

Nếu nhìn vào message hiển thị có chứa page URL,  thì với trường hợp nếu có 1 số core libraries và service đã được update thì message sẽ hiển thị nhằm thông báo việc restart lại hệ thống.

Redhat Knowledge Base  <Subcription required>

⇒ Dựa theo source code trên thì dưới đây là 8 package mà khi update thường sẽ hiển thị thông báo nên update hệ thống
『dbus、glibc、gnutls、linux-firmware、kernel、openssl-libs、systemd、udev』
Source code:git://yum.baseurl.org/yum-utils.git/needs-restarting.py

Thêm vào đó, ở release note 7.3 thì được nói như sau (trừ 1 phần ngoại lệ)
needs-restarting trong ultility đã được thêm vào option mới –reboothint
Lần này, needs-restarting trong ultility được thêm vào option mới —reboothint. needs-restarting trong ultility đã được thêm vào option mới –reboothint. Khi thực thi needs-restarting —reboothint thì từ lần boot trước những core library tương ứng nào đang được update? reboot có tiếp tục tiến hành hay không ? thì hệ thống sẽ xuất thông báo. Ở đây thì , để tất cả các update được apply thì việc quyết định reboot hệ thống hay không sẽ có hữu ích cho người quản lý system. Chú ý là những thông báo này chỉ mang tính cung cấp thông tin chứ không phải là nhất thiết phải reboot hệ thống ngay lập tức.

Trường hợp các process restart ngoài process systemd ra

Chúng ta có thể tự check các process được trực tiếp start build từ source. Dưới đây là trường hợp sau khi overwrite file binary, sử dụng needs-restarting để check trong lúc h2o của HTTP server đang running

# needs-restarting
17648 : /usr/local/bin/h2o -c /etc/h2o/h2o.conf

Hệ Debian
Sử dụng package「debian-goodies」có chứa command「checkrestart」

Debian Manpages

NAME
checkrestart – check which processes need to be restarted after an upgrade

SYNOPSIS
checkrestart [ -hvpan ] [ -b blacklist_file ] [ -i package_name ] [ -e pid ]

1.Install

# apt-get install debian-goodies
2.Hiển thị các processs cần được restart

# checkrestart -a
Found 2 processes using old versions of upgraded files
(1 distinct program)
(1 distinct packages)

Of these, 1 seem to contain systemd service definitions or init scripts which can be used to restart them.
The following packages seem to have definitions that could be used
to restart their services:
openssh-server:
        1411    /usr/sbin/sshd
        1354    /usr/sbin/sshd
These are the initd scripts:
service ssh restart

*** Không có option tương tự như —reboothint của lệnh needs-restarting

Kết thúc

Có lẽ là việc sử dụng các command trong bài này thì không hẳn là sẽ tăng viễn cảnh có thể maintenance mà không cần phải restart OS. Ngoài ra, đối với OS restart sau khi update, có thể sử dụng để check lại các trạng thái process không reflect khi quên restart process

Link nguồn

 

Để thay đổi group của file/ thư mục thì có thể dùng command 「chgrp」. Ở bài này sẽ giải thích về cách sử dụng của command 「chgrp」

1. Format của lệnh chgrp

Format
chgrp [options] group file…
Các option chính
-R, –recursive Ownership của group được thay đổi đệ quy apply lên directory và các thành phần chứa bên trong thư mục đó. Lệnh execute trên tất các các file và subdirectory bên trong file
-c, –changes Hiển thị nội dung chi tiết của từng file mà được apply chuyển đổi group trong thực tế.
Command chgrp thì group mà được chỉ định cho file sẽ được set. Ngoài group name ra thì có thể chỉ định groupID

2. Các sample dùng chgrp

Thử dùng command chgrp trong thực tế.

Thay đổi group của file test.txt thành group2
$ ls -l
合計 4
-rw-r–r– 1 user1 group1 0 7月 22 08:50 test.txt ← Group của test.txt là group1

Sử dụng lệnh chgrp
$ chgrp group2 test.txt
$ ls -l
合計 4
-rw-r–r– 1 user1 group2 0 7月 22 08:50 test.txt ← group được đổi thành group2
Các file/subdirectory của dir1 cũng được gom lại và change thành group2
$ ls -l dir1/
合計 12
-rw-r–r– 1 user1 group1 0 7月 24 08:32 test1.txt ← group của file là group1
-rw-r–r– 1 user1 group1 0 7月 24 08:32 test2.txt ← group của file là group1
-rw-r–r– 1 user1 group1 0 7月 24 08:32 test3.txt ← group của file là group1

$ chgrp -R group2 dir1 ← với việc chỉ định option「-R」thì group của tất cả các subdirectory của dir1 đều change

$ ls -l dir1/
合計 12
-rw-r–r– 1 user1 group2 0 7月 24 08:32 test1.txt ← group của file được change thành group2
-rw-r–r– 1 user1 group2 0 7月 24 08:32 test2.txt ← group của file được change thành group2
-rw-r–r– 1 user1 group2 0 7月 24 08:32 test3.txt ← group của file được change thành group2

Trích nguồn

http://kazmax.zpp.jp/linux_beginner/chgrp.html

Để thay đổi owner và group của file/directory có thể dùng command 「chown」
Ở bài này, sẽ giải thích về cách sử dụng command 「chown」

1. Format lệnh chown

Format
chown [Option]… OWNER[:[GROUP]] FILE…
Các option chính

-R, —recursive Thay đổi đệ quy ownership của các file và thư mục. Lệnh thực thi apply các thay đổi lên các file và thư mục con đệ quy bên trong của file/folder được chỉ định.

-c, –changes Hiển thị chi tiết info các thay đổi được apply.
Dùng lệnh chown thì ownership của file và thư mục sẽ được thay đổi.
Phần OWNER thì user name, user iD (giá trị) được chỉ định.

Có thể được chỉ định cùng lúc và được phân tách bởi dấu「:(dấu 2 chấm)」

2. Các sample sử dụng chown

Owen từ user1 change thành user2
$ ls -l
合計 4
-rw-r–r– 1 user1 group1 0 7月 22 08:50 test.txt

$ chown user2 test.txt
$ ls -l
合計 4
-rw-r–r– 1 user2 group1 0 7月 22 08:50 test.txt ← Owner được chuyển đổi trở thành user2

Để thay đổi owner thành user2, group thành group2:
$ chown -c user2:group2 test.txt
Owner của ‘test.txt’ được thay đổi thành user2:group2 ← với option「-c」thì nội dung thay đổi sẽ được hiển thị.

$ ls -l
合計 4
-rw-r–r– 1 user2 group2 0 7月 22 08:50 test.txt ← Owner là user2, group được thay đổi thành group2

***Note

Về các ký tự phân tách OWNER và GROUP 「:(dấu 2 chấm)」và「.(dấu chấm)」

Ký tự phân tách OWNER và GROUP được viết là 「:(dấu 2 chấm)」nhưng「.(dấu chấm)」cũng có thể được sử dụng. Thay vào đó, ngày xưa thì việc sử dụng 「.(dấu chấm)」lại là standard hơn.
Để có thể chứa 「.(dấu chấm)」, User name và group name trong command thì khi thay đổi user và group, command chown sẽ hành động hơi strange khi được thực thi.
Để có thể thay đổi owner 1 cách đúng đắn thì có thể xài 「.(dấu chấm) và tốt hơn là nên sử dụng 「:(dấu 2 chấm)」

***Note

Khi dùng chown, mà thiếu set OWNER thì từ「:(dấu 2 chấm)」trở đi, thì chỉ có group được thay đổi

ls -l
合計 4
-rw-r–r– 1 user1 group1 0 7月 22 08:50 test.txt

$ chown :group2 test.txt ← Phần OWNER bị thiếu
$ ls -l
合計 4
-rw-r–r– 1 user1 group2 0 7月 22 08:50 test.txt ← chỉ group được thay đổi

***Note
Đối với trường hợp khi run
chown user1: test.txt
thì, tiếp tục ở phần user name cho dù có dấu hai chấm hoặc dấu chấm đi nữa thì khi group được để trống, group của file sẽ được thay đổi thành primary group của file đó. user sẽ trở thành đối tượng được chỉ định.

$ ls -l
合計 4
-rw-r–r– 1 user1 group1 0 7月 22 08:50 test.txt

$ id user2
uid=503(user2) gid=505(group2) 所属グループ=505(group2)
↑ primary group của「user2」là「group2」

$ chown user2: test.txt ←phần phía sau「:(dấu 2 chấm)」ko được set
$ ls -l
合計 4
-rw-r–r– 1 user2 group2 0 7月 22 08:50 test.txt
↑group của file đã thay đổi thành primary group của user2

Trích nguồn

http://kazmax.zpp.jp/linux_beginner/chown.html

Sử dụng command chmod để thay đổi quyền truy cập file và thư mục.

Command chmod có 2 mode là ký tự (symbol) và giá trị số (numberic). Có thể chỉ định, removw hoặc thêm quyền truy cập với dạng symbol. Đối với giá trị số thì phần input của command option thì khá là ngăn nhưng chỉ có thể set giá trị cố định cho quyền truy cập.

1. Các ví dụ về cách dùng command ở mode symbol và mode numberic

Mode numberic
■ Set permission là 777:
$ chmod 755 test.txt
$ ls -l
合計 4
-rwxr-xr-x 1 test_user test_user 0 7月 22 10:00 test.txt

Mode symbol
■ Thêm quyền write cho group
$ chmod g+w test.txt
$ ls -l
合計 4
-rwxrwxr-x 1 test_user test_user 0 7月 22 10:00 test.txt

 

■Remove quyền execute của 「Group」と「Others 」từ list permision
$ chmod go-x test.txt
$ ls -l
合計 4
-rwxrw-r– 1 test_user test_user 0 7月 22 10:00 test.txt

2. Format command chmod

Format
chmod [options] mode file…

Các option chính

-v, –verbose Thay đổi tất cả các file hoặc hiển thị chi tiết nội dung không được thay đổi
-R, –recursive Thay đổi theo đệ quy tất cả các file và thư mục chứa bên trong thư mục đó
$ chmod -v 644 test.txt
Đổi mode của file ‘test.txt’ thành 0644 (rw-r–r–)  ←Nội dung thay đổi sẽ được hiển thị
Chỉ định permission ở thành phần của mode, dưới đây sẽ giải thích cách chỉ định permission

3. Giải thích về ký hiệu ở mode sử dụng symbol

Khi ở mode dùng symbol, thì các ký hiệu được hiển thị ở phần mode trong format của lệnh chmod như sau

[ugoa…][[+-=][rwxXstugo…]…][,…]
Vd, khi sử dụng lệnh tương tự như sau

chmod g+w file.txt

Chi tiết sẽ được giải thích dưới đây
Ở mod dùng ký tự thì sẽ được bắt đầu với「u, g, o, a」.「u, g, o, a」sẽ quy định về việc tương ứng với user nào mà quyền truy cập sẽ được thay đổi.

Ý nghĩa từng ký tự được giải thích như sau

u  Owner
g  Group
o  Những account mà không phải owner lẫn group owner
a  Tất cả các ý nghĩa, khi chỉ định sẽ trở thành chọn tất cả các option u,g,o. Có thể lược bót u, g, o bằng cách chỉ định 「a」
※ Phần vị trí của quyền truy cập được thiết lập umask là không thay đổi được nên cần phải chú ý.
Tiếp theo là +,-,= sẽ được chỉ định. Các toán tủ này mang ý nghĩa như sau:
+  Quyền truy cập được thêm vào
–   Quyền truy cập được lược bỏ đi
=  Quyền truy cập được chọn thiết lập

Cuối cùng quyền truy cập được chỉ định

r  Quyền read
w  Quyền write
x  Quyền execute

***Note
Về cơ bản thì những r, w, x được list ở trên thường được sử dụng, nhưng cũng có 1 số ký tự khác như sau
X Owner, group, nếu được thiết lập quyền execute đối với 1 số cái khác thì quyền execute/delete sẽ được thêm vào.
s  Set User ID, Set Group ID。※ Sẽ được giải thích vào lần sau
t  Sticky bit ※  Sẽ được giải thích ở lần sau
u  Biểu thị quyền truy cập được setting đối với owner. Chẳng hạn, thiết lập g+u đối với group thì có thể thêm vào quyền truy cập tương tự như owner

g  Quyền truy cập được thiết lập với group
o  Quyền truy cập được thiết lập đối với user loại khác.

Chỉ định nhiều thay đổi trong cùng 1 lần
Có thể chỉ định nhiều quyền truy cập cùng 1 lúc bằng cách phân tách chúng với dấu phẩy

Chẳng hạn,

chmod g+r,o+r test.txt
※ Chú ý: phía sau dấu「,」thì sẽ không được có khoảng trắng

Ngoài ra có thể chỉ định rwx đối với group g.

chmod g+rwx test.txt
Rất tiện dùng khi có thể thiết lập nhiều quyền truy cập cùng lúc.

4. Giải thích về mode numeric
Mode numeric thì thiết lập dễ hơn so với ký tự, có thể thiết lập permission theo số đã nhớ từ trước.
Cách tạo ra cách con số thì được mô tả trong phần (bài đăng sau)

1000  Stiky bit
2000  Set Group ID
4000  Set User ID
100owner quyền execute
200owner quyền write
400owner quyền read
10group quyền execute
20group quyền write
40group quyền read
1orthers quyền execute
2orthers quyền write
4orthers quyền read

Các con số được tính toán bằng cách chỉ định và cộng thêm vào giá trị bề mặt dưới đây
Chẳng hạn, trường hợp muốn thiết lập quyền execute của owner, quyền write, quyền read + quyền đọc group+ quyền đọc của các user khác thì sẽ được sử dụng là
100+200+400+40+4=744
Làm như vậy thì quyền truy cập đã được thiết lập như đã nói ở trên:
owner execute, write, read + group read + others read

***Note
Sẽ đơn giản hơn nếu bạn có thể confirm được
・Đối với accoutn nào
・Quyền truy cập như thế nào
・Thêm/Xoá/Chỉ định

Trích nguồn

http://kazmax.zpp.jp/linux_beginner/chmod.html

Có thể kiểm tra quyền truy cập file và directory với command「ls -l」. Các ký hiệu r, w, x, – và 1 số ký tự khác có thể dùng để biểu thị cho quyền truy cập.

Đối với những người sử dụng FTP hay quản lý site thì có lẽ đã quen thuộc với cách thức này.
Cách hiển thị dựa trên các giá trị permission thì từ bài này về sau, cũng dùng cách giải thích tương ứng cho các command được dùng để quản lý quyền truy cập file và thư mục, cách thức này cũng thường apply ở các hệ thống open source được triển khai trên thế giới, cho nên nếu có thể nhớ  sẵn thì sẽ rất có lợi.

1. Các ký hiệu tương ứng quyền truy cập và các giá trị liên quan

Ký hiệu ứng với quyền truy cập có thể được thay thế bởi các con số như sau

r → 4 read
w → 2 write
x → 1 execute
– → 0 Không có quyền

2. Hiển thị quyền truy cập bởi number
Quyền truy cập được biểu thị dưới dạng giá trị số thì list các quyền truy cập được hiển thị theo ký tự sẽ được chia theo các phần tương ứng với

「 Owner」, 「Owner group」, 「Orther 」 rồi chuyển đổi thành giá trị số và các phần sẽ được thêm vào.
Có thể tham khảo cách hiển thị quyền truy cập như sau:
Vd: trường hợp rwxr-xr–

「 Owner」「Group」「Orther」
「 rwx  」「r-x」「r--」
↓ ↓ ↓
4+2+1
=7 4+0+1
=5 4+0+0
=4
Đối với 「 Owner」thì quyền truy cập là「rwx」nên giá trị số sẽ được thay thế là 「4+2+1」, kết quả là 7
Đối với 「 Owner group」thì quyền truy cập là「r-x」nên giá trị số sẽ được thay thế là 「4+0+1」, kết quả là 5
Đối với 「 Orther」thì quyền truy cập là「r--」nên giá trị số sẽ được thay thế là 「4+0+0」, kết quả là 4
Tất cả khớp với 「rwxr-xr–」thì có thể biểu thị bởi「754」. Giá trị 「754」tức là giá trị số đại diện cho quyền truy cập

***Note
Chi tiết sẽ được giải thích ở phần tương ứng nhưng có thể tham khảo ví dụ sau:
Khi thực thi
# chmod 754 text.txt
thì quyền truy cập file test.txt có thể được chuyển thành 754(rwxr-w-r–)

Ngoài ra, với các hệ open source được phân phối dùng trên thế giới, thì sẽ có các bài giải thích về việc set quyền 777 cho thư mục hoặc set quyền 755 cho file.

Trích dẫn

http://kazmax.zpp.jp/linux_beginner/permission_numerical.html

Còn nhớ chuyến đi du lịch mà cả gia đình cùng đi với nhau là cách đây rất lâu rồi… Cả nhà 4 người, chở nhau trên chiếc xe Dream đi NT và mục đích chuyến đi là đi dự đám cưới anh trai. Khi ấy, mình vẫn còn rất nhỏ và ba mẹ vẫn còn khoẻ. Ký ức của cả chuyến đi là không nhiều, chỉ nhớ là trời rất là nóng và chị gái sửa soạn đồ cho mình để đi đám cưới. Mặc 1 chiếc váy mà khi đó ai cũng khen đẹp trong khi mình rất ghek, đơn giản là ghek mà không có lý do. Không nhớ rõ mọi thứ diễn ra như thế nào, mang máng nhớ là khi trở về khách sạn thì mình đã nằm ngủ trên ghế trong lúc mọi người chờ lấy chìa khoá?!? (maybe)

Sau khi sang Japan làm việc, đã hơn 2 năm từ ngày xa nhà, mình muốn làm điều gì đó cho gia đình, để tạo thêm nhiều ký ức đẹp, để gia đình có thêm nhiều hình trong album du lịch cùng nhau. Đã rất lâu rồi, cả gd không du lịch với nhau và cũng ít khi chụp hình chung. Vậy nên, tranh thủ golden week này về vn thăm và dành trọn thời gian cho ba mẹ, đưa cả nhà đi du lịch 🙂 Plan được lên từ trước đó, hỏi ý kiến và tham khảo bạn bè. Rất hiểu cái cảm giác của ba muốn về quê miền Trung, nhưng thời gian không nhiều lắm, nên mẹ và mình đã chọn đi PT …

Book phòng, tính toán địa điểm và schedule cho mọi thứ, có lẽ mình muốn cái gì đó diễn ra theo như kế hoạch hơn, vì đã tính toán kỹ và không muốn có bug. Bản thân mình vốn dĩ là super lười, nhưng lần này đặt mọi thứ để suy nghĩ cho ba mẹ, nếu sức khoẻ và thể trạng yếu thì sẽ nên đi như thế nào, làm sao cho tiện nhất có thể. Plan lần này, chọn PT vì nó không quá xa, có thể tiết kiệm được time vì thời gian ở VN không nhiều lắm, chọn ở resort để gia đình ở theo kiểu nghỉ dưỡng, biển và hồ bơi đều nằm bên trong khu resort, ăn uống cũng khá là tiện. Chọn xe người quen vì không muốn để ba mẹ phải đi xe khách bên ngoài, an toàn và thoải mái là trên hết nên tốn kém hơn 1 tí cũng không ngại. Book resort từ khá lâu trước khi về VN, hỏi xe và tìm địa điểm ăn uống, mọi thông tin đều đã note cẩn thận. Mẹ không hào hứng lắm với việc đi chơi, còn ba thì ngược lại, ba có vẻ rất thích đi chơi đây đó.

Mọi thứ diễn ra theo kế hoạch, nhưng vẫn xảy ra vài thứ không suôn sẻ lắm. Bác tài người quen thì chê đồ ăn PT, giá cả ở resort tất nhiên sẽ khác với ăn uống bình dân, mẹ mình thì vốn dĩ tính rất tiết kiệm nên cứ than việc ăn uống tốn kém gấp mấy lần so với ở nhà. Khí hậu thay đổi, từ 1 nơi mát mẻ, tới đó thì nóng hơn hẳn nên mẹ mình không quen lắm, thêm nữa là thể trạng cũng không khoẻ, nên chỉ đi bộ từ phòng ra biển thôi cũng thấy đuối. Thế là, đi tham quan ba mẹ cũng không đi, ra biển tắm chỉ 1 bữa mà mẹ cũng bị cảm lạnh, sau đó là nếu mình không rủ rê thì chắc ba với a trai mình cũng không ra hồ bơi lần nữa 😦 Hồ bơi cực đẹp & biển rất sạch, nhưng cứ cảm thấy nếu ở chơi lâu thì mẹ ở phòng 1 mình chắc buồn. Lâu lâu có dịp cả nhà quây quần, vậy mà cuối cùng thành ra là dịp cho ba mẹ gây nhau. Ba nói vài câu vô lý, mẹ thêm mấy câu trách móc, cứ vậy rồi thành ra cãi nhau… Buồn thiệt, mọi thứ cứ diễn ra không như mong muốn, và cũng chẳng còn cách nào khác là thôi đành giải tán sớm đi ngủ… Được 2 bữa ăn sáng, cả nhà quây lại ăn uống nói chuyện cũng vui, để ba mẹ có thời gian nghỉ ngơi, không phải lo lắng chuyện ăn uống, dọn dẹp trong nhà. Chuyến đi ngắn ngủi kết thúc như thế…

Có feeling như mình mang vai trò trưởng đoàn trong suốt chuyến đi, đi đâu làm gì plan ra sao đều phải tự quyết định, dù sao thì mình cũng đã làm hết sức có thể và dành thời gian 90% là ở cạnh gia đình trong dịp về VN này. Gia đình là quan trọng, luôn là cái nơi duy nhất yên bình nhất để trở về. Có đi xa mới nhận ra được nơi mỗi người sinh ra lớn lên nó đẹp như thế nào, có đi xa mới có cảm giác muốn trở về, mới biết trân trọng những người thân bên mình. Mình hay suy nghĩ nhiều thứ mang tính dự đoán, kiểu như estimate con đường phía trước. Với tính chất công việc và những dự định như vậy, thì thời gian mình có thể dành cho gia đình chắc chỉ 1 lần trong năm, ba mẹ lớn tuổi rồi, 1 năm mình sẽ được gặp và ở cạnh bao lâu? Bạn bè vẫn còn đó, mong là họ sẽ hiểu khi mình không thể dành hết thời gian cho từng người được. Những gì chưa làm được mình vẫn đang và sẽ cố gắng thực hiện, hi vọng ba mẹ vẫn tiếp tục sống mạnh khoẻ và đợi mình về 🙂

Mẹ cứ trách sao mình chi xài tiền bạc lãng phí quá, thay vì đi chơi thì để tiền đó cho mẹ… nhưng mong mẹ hiểu là con có làm gì đi nữa, cũng hướng về gia đình cả, tiền bạc quan trọng thật đó nhưng có nhiều giá trị còn hơn vậy. Đi xa không phải mục đích kiếm tiền, mà để bản thân có trải nghiệm, đi xa cũng để trưởng thành hơn và biết nhận ra nhiều giá trị khác hơn là cuộc sống an nhàn ngày qua ngày. Con còn nhiều dự định, cũng biết cái ba mẹ mong muốn là gì, nhưng con cần thêm thời gian nữa, con còn cuộc sống của riêng mình, chỉ mong ba mẹ luôn mạnh khoẻ và sống lâu để có lúc nào đó, con còn đưa người yêu nào đó trong tương lai về cho ba mẹ mừng 🙂