You are on page 1of 4

PHÂN QUYỀN TẬP TIN VÀ THƯ MỤC

TRÊN LINUX (CHMOD)


Trong Linux, để phân quyền lại các tập tin và thư mục, chúng ta sẽ sử dụng lệnh
chmod. Trong bài viết này, mình sẽ đề cập tới việc hướng dẫn sử dụng lệnh
chmod cũng như cơ cấu phân quyền trong Linux.

I. Phân quyền là như thế nào?


Trong Linux, khi nói đến phân quyền là chúng ta sẽ nghĩ ngay đến 3 quyền hạn
cơ bản của một user/group nào đó trên một file/folder nào đó bao gồm:

 r (read) – quyền đọc file/folder


 w (write) – quyền ghi/sửa nội dung file/folder
 x (execute) – quyền thực thi (truy cập) thư mục. Đối với thư mục thì bạn cần phải
có quyền execute thì mới dùng lệnh cd để truy cập vào được
Ok, bây giờ bạn hãy thử tự làm các công việc sau (ở các bài trước mình hướng
dẫn cả rồi):

 Đăng nhập vào SSH với user là root


 Tạo một user mới với tên bất kỳ, sau đó thiết lập mật khẩu cho nó
 Thoát ra khỏi SSH, đăng nhập lại với user bạn vừa tạo
 Ngay tại thư mục của user, hãy tạo nhanh một file trống rỗng với tên bất kỳ bằng
lệnh touch tên-file
 Ngay tại thư mục của user, hãy tạo một folder với tên bất kỳ
 Gõ lệnh ls -l để xem các file vừa tạo kèm theo thông tin chi tiết của nó
Kết quả sẽ trả về như sau:
01 touch testfile
02 mkdir testfolder
03 ls -l
04 total 4
05 -rw-rw-r-- 1 van van 0 Sep 21 19:47 testfile
drwxrwxr-x 2 van van 4096 Sep 21 19:47 testfolder
06
Bạn hãy để ý giúp mình 2 dòng này nhé:
01 -rw-rw-r-- 1 van van 0 Sep 21 19:47 testfile
02 drwxrwxr-x 2 van van 4096 Sep 21 19:47 testfolder
Mình xin giải thích bằng mô hình bên dưới như sau:
01
02 -rw-rw-r-- 1 van van 0 Sep 21 19:47 testfile
drwxrwxr-x 2 van van 4096 Sep 21 19:47 testfolder
03
__________________________________________^-- Ngày tháng tạo ra file và tên file
04 ^ ^ ^ ^ ^ ^ ^ ^
05 | | | | | | | \--- Dung lượng của file/folder
06 | | | | | | \-------- Tên group sở hữu
07 | | | | | \--------------- Tên user sở hữu
| | | | \---------------------- Số này khó giải thích (không quan trọng)
08 | | | |
09 | \--\--\----------------------------- Các chỉ số phân quyền
10 \------------------------------------- Loại file (chữ d nghĩa là thư mục)
11
Vấn đề quan trọng ở đây là chúng ta sẽ phân tích các chỉ số phân quyền trong
cái đống bùi nhùi trên.

Đầu tiên là đoạn rw-rw-r--, ở đoạn này bạn có thể thấy nó có 1 số dấu gạch
ngang (-). điều đó có nghĩa là chưa bật đủ quyền dành cho nó, mỗi quyền sẽ
được mô tả bằng một dấu -. Cụ thể:
 rw-: Đối tượng thứ nhất chính là quyền dành cho user sở hữu nó.
 rw-: Đối tượng thứ hai chính là quyền dành cho CÁC user thuộc group đang sở
hữu nó.
 r--: Đối tượng thứ ba chính là quyền dành cho MỌI user không thuộc quyền sở
hữu và không thuộc group sở hữu.
Vậy cái đoạn rw-rw-r-- nghĩa là “User van được phép đọc và sửa file, các user
thuộc group van có thể đọc và sửa file, còn những người còn lại là chỉ được đọc
file“.
Nhưng đó chỉ là 1 trong kiểu biểu diễn quyền của tập tin, còn 1 kiểu biểu diễn
nữa đó là ở dạng số. Cụ thể:

 Quyền r được biểu diễn bằng số 4.


 Quyền w được biểu diễn bằng số 2.
 Quyền x được biểu diễn bằng số 1.
Nếu một đối tượng mà có đủ 3 quyền này thì bạn cứ lấy cả 3 cộng lại là 4 + 2 +
1 = 7, vậy quyền số 7 nghĩa là nó được phép đọc, sửa và thực thi file. Ví dụ như
đoạn rw-rw-r-- thì mình có một phép tính như sau:
01 r w - r w - r - -
02 4 2 0 4 2 0 4 0 0
03 | | | | | | | | |
04 \ 6 / \ 6 / \ 4 /
Vậy kết luận rằng, đoạn rw-rw-r-- sẽ được biểu diễn bằng số là 664. Đây là
quyền mặc định dành cho file.
Tương tự, đoạn rwxrwxr-x nghĩa là ở dòng thứ 2 sẽ được biểu diễn bằng số
là 775. Đây là quyền mặc định dành cho folder.
Bây giờ bạn có thể thử bằng cách tạo một user mới khác nữa, sau đó đăng nhập
bằng user này vào thư mục của user mà bạn đã tạo ở trên để xem nó báo lỗi
không đủ quyền khi truy cập. Kế tiếp thực hành cách đưa user mới vào group
của user sở hữu rồi vào thử lại. Đây chính là lúc bạn ôn lại các kiến thức bài
trước.

II. Thay đổi phân quyền cho file/folder


Bạn chắc chắn đã hiểu được hệ thống phân quyền trên Linux chưa? Nếu rồi, thì
bạn sẽ cần hiểu luôn cách đổi phân quyền cho các file và folder là như thế nào.

Để phân lại quyền cho cả file/folder trên Linux thì bạn sẽ sử dụng lệnh tên
là chmod. Cấu trúc sử dụng lệnh này là:
01 chmod [tùy chọn] [biểu diễn phân quyền] [tên file hoặc thư mục]
Trong đó, mục [tùy chọn] là không bắt buộc, bao gồm các tùy chọn sau:

 -v: hiển thị báo cáo sau khi chạy lệnh. Nếu bạn chmod nhiều file/folder cùng lúc
thì cứ mỗi lần nó đổi quyền của 1 file/folder xong là sẽ hiện báo cáo.
 -c: giống như trên, nhưng chỉ hiện khi nó đã làm xong tất cả.
 -f: Hiểu ngắn gọn là kiểu “kệ mẹ nó”, nếu có lỗi xảy ra nó cũng không thông báo.
 -R: nếu bạn CHMOD một folder thì kèm theo -R nghĩa là áp dụng luôn vào các
file/folder nằm bên trong nó.
 --help: hiển thị thông báo trợ giúp.
Ở phần [biểu diễn phân quyền], ban có thể biểu diễn bằng 3 kiểu:

 kiểu ký tự: giống như ở trên (rw-rw-x–).


 kiểu ugo: kiểu này sẽ phân quyền cho từng đối tượng phân quyền.
 kiểu số: cũng giống như ở trên (644).
Ví dụ:

 chmod 775 testfile


 chmod 400 testfolder
 chmod u+s testfolder (cho phép mọi thành viên không thuộc người sở hữu và
không thuộc group sở hữu có thể execute folder)
Một vài ví dụ thêm về kiểu ugo:

 o+rws: cho phép user sở hữu có full quyền


 g+rw: cho phép group sở hữu có quyền đọc và ghi
 u+w: cho phép các user còn lại có quyền đọc
 a+rws: cho phép toàn bộ user có full quyền (777)
III. Thay chủ sở hữu file/folder
Mặc định các file và folder sẽ được sở hữu bởi user/group tạo ra nó. Chẳng hạn
như mình dùng user là thach1 để tạo một folder thì các user khác ngoại trừ user
root sẽ không thể tạo file hoặc thay đổi nội dung của file trong thư mục này, vì nó
thuộc sở hữu của thach1.

Do vậy, để đổi chủ sở hữu một thư mục cho user/group nào đó thì bạn sẽ sử
dụng lệnh chown như sau:
01 chown -R [tên user]:[tên group] [file/folder]
Ví dụ:
01 chown -R thach2:thach2 /home/thach1

You might also like