1. Tổng quan về CHMOD
CHMOD là viết tắt của “Change
Mode” và nó là lệnh của Linux được sử dụng để thay đổi quyền truy cập tập tin
và thư mục. Trong Linux/ Unix, khái niệm về người sử dụng (owner) và nhóm là rất
cơ bản, giống như mọi người đều muốn mọi thứ của họ đều được sử dụng một cách đảm
bảo an toàn và có tổ chức. Đó là lý do vì sao tất cả tập tin và thư mục có một
chủ sở hữu và một nhóm liên kết với nó và họ có quyền truy cập khác nhau để
truy cập vào một tập tin cụ thể
·
Quyền chủ sở hữu : Họ xác định những hoạt động
chủ sở hữu của tập tin có thể thực thi trên các tập tin.
·
Quyền nhóm : Họ xác định những hoạt động người
dùng thuộc nhóm liên kết với tập tin có thể thực thi trên các tập tin.
·
Quyền khác : Học chỉ ra những hoạt động tất cả
các người dùng khác có thể hiện trên các tập tin.
Vì vậy, có ba hoạt động cơ bản thực
thi trên tập tin/ thư mục mà một người dùng/ nhóm người dùng/ người dùng khác
có thể thực hiện trên các tập tin và thư mục
·
Read (r) : Cho phép đọc nội dung của tập tin/
thư mục. Trong trường hợp các thư mục, một người có thể xem tất cả các tập tin
và thư mục con thuộc vào thư mục.
·
Write (w) : Cho phép thay đổi nộ dung của tập
tin/ thư mục. Trong trường hợp, một người có thể tạo ra một tập tin hoặc thư mục
con trong thư mục đó.
·
Execute (x) : Cho phép thực thi một tập tin như
một script/program. Thực thi một thư mục! Ví dụ, để sử dụng ls và các lệnh cd
trong thư mục nào đó, người dùng phải có quyền truy cập thực thi.
CHMOD gán giá trị số cho quyền
Read, Write, Thực thi như sau:
·
Read : 4
·
Write : 2
·
Execute : 1
Vì vậy, các quyền liên quan đến bất kì tập tin/ thư mục trong linux đều
có định dạng 3x3 loại quyền (Read, Write, Execute) mà có sẵn cho 3 loại người sử
dụng ( chủ sở hữu, nhóm, khác ).
Để quan sát điều này, chỉ cần nhập lệnh ls –l để hiển thị 9 kí tự cho
tất cả các tập tin/ thư mục đại diện cho các quyền truy cập cho tất cả a loại
người sử dụng.
Ví dụ như : ls -l ftpaddhost:
-rwxr--r-- 1 root
bin 7879 Jan 22 2014 ftpaddhost
Như vậy, đối với file ftpaddhost:
·
Chủ sở hữu có quyền Read + Write + Execute
·
Nhóm có quyền Read
·
Người dùng khác có quyền Read
2. Thay đổi quyền tập tin/ thư mục với CHMOD
Để thay đổi các điều khoản liên
quan đến các tập tin và thư mục, bạn có thể sử dụng một trong hai cách dưới dạng
biểu diễn bát phân (sử dụng số) hoặc ký tự đại diện (sử dụng bảng chữ cái).
Trong biểu diễn bát phân các quyền:
·
Chữ số đầu tiên dành cho chủ sở hữu
·
Chữ số thứ hai dành cho Nhóm
·
Chữ số thứ ba là cho người khác
Ví dụ, chúng ta thấy một lệnh như: chmod 744 helloworld.sh.
Tức là, chúng ta đã cho quyền Read+Write+Execute
(4+2+1) cho chủ sở hữu, cho quyền Read cho nhóm, cho quyền Read cho người khác.
Bây giờ,nếu chúng ta muốn cung cấp
quyền Read+Write (4+2) cho chủ sở hữu, và quyền Read(4) cho nhóm và người sau,
chúng ta sẽ cần nhập lệnh sau đây:
chmod 644
<tên file>
Một ví dụ khác, để cung cấp quyền
Read + Execute (4+1=5) cho người chủ sở hữu, và không cấp quyền (0) cho nhóm,
và quyền Write (2) cho những người khác, nhập vào dòng lệnh sau :
chmod 502
<tên file>
3. Umask là gì?
Umash, được thiết lập để xác định quyền truy cập cho tập tin/ thư mục khi nó được tạo ra trong một thư mục được thiết lập umask.
Quyền mặc định cho một tập tin là
777 và cho một thư mục là 666.
Khi một
thư mục hoặc file được gán umask thì khi nó được tạo ra, quyền truy cập sẽ được
cấp xác định bằng cách lấy giá trị mặc định trừ đi umask. Giá trị mặc định của
umask là 002 hoặc 022.
Cuối cùng quyền mặc định cho tập
tin và thư mục được xác định như sau:
·
Cho phép tập tin mặc định : 666
·
Cho phép thư mục mặc định : 777
·
Mặc định umask : 022
·
Quyền mặc định cho tệp tin : 644
·
Quyền mặc định cho thư mục : 755
Bạn có thể thay đổi umask đến một
giá trị phù hợp dựa trên mục đích của bạn.
Ví dụ, nếu bạn muốn không ai trừ chủ
sở hữu có thể làm bất cứ điều gì với các tập tin/ thư mục bạn cần đặt umask là
0077.
Sau đó, khi bạn tạo ra một file mới
thì quyền của file sẽ được xác định là:
777-umask hay 777-077=700
Như vậy, file
mới được tạo ra sẽ có quyền rwx------
4. Biểu diễn tượng trưng
Các biểu diễn tượng trưng được sử
dụng cho 3 kiểu đối tượng sử dụng như sau:
·
u được sử
dụng cho người sử dụng/ chủ sở hữu
·
g được sử dụng cho nhóm
·
o được sử dụng cho người khác
a. Thêm đơn quyền
Để thay đổi đơn quyền của một tập
hợp cụ thể ( chủ sở hữu, nhóm, người khác), chúng ta có thể sử dụng kí tự “+” để
thêm quyền
Cú pháp: chmod <tên tập hợp>+<quyền>+<tên
file>
Ví dụ: chmod u+x tên file
b. Thêm nhiều quyền
Cũng tương tự như lệnh trên, bạn
chỉ cần tách biệt nhiều quyền bằng dấu phẩy (,)
Cú pháp : chmod <tên nhóm>
+ <quyền >, <tên nhóm>+<quyền> <tên file>
Ví dụ: chmod g x,o +x <tên
file>
Sử dụng lệnh trên, chúng ta có thể
thực hiện quyền truy cập vào nhóm và người dùng khác của tệp tin
c. Loại bỏ một quyền
Loại bỏ một quyền dễ dàng như thêm một quyền, chỉ cần
nhớ sử dụng “-“ thay vì “+”.
Cú pháp : chmod <tên nhóm>
- <quyền> < tên file>
Ví dụ: chmod o-x <tên file>
Ở trên lệnh loại bỏ quyền thực
thi từ nhóm người dùng khác của tập tin.
d. Làm thay đổi cho tất cả
Trong trường hợp chúng tôi thêm
hoặc loại bỏ một số điều khoản cho tất cả người sử dụng (chủ sở hữu, nhóm và
người khác), chúng ta có thể sử dụng một ký hiệu “a” biểu diễn cho “ tất cả người
dùng”
Cú pháp: chmod a<+ hoặc ->
<quyền > <tên file>
Ví dụ : chmod a+x <tên
file>
Lệnh trên sẽ thêm quyền thực thi
cho tất cả người dùng.
e. Sao chép quyền
Nếu chúng ta muốn tạo quyền của tập
tin/ thư mục tương tự, chúng ta có thể làm điều đó bằng cách sử dụng tùy chọn reference.
Ví dụ, chúng ta muốn áp dụng quyền của myfile 1 tới một tập tin khác là myfile2,
sẽ sử dụng lệnh sau đây:
Ví dụ : chmod – reference =
myfile1 myfile2
f. Áp dụng thay đổi tất cả các nội dung của một thư mục
Nếu chúng ta muốn áp dụng một số
thây đổi cụ thể với cả tất cả tập tin bên trong một thư mục, chúng ta có thể sử
dụng tùy chọn –R để biển diễn hoạt động đệ quy
Cú pháp : chmod –R <thư mục>
Trong bài viết này tôi đã trình bày các kiến thức cơ bản về quyền của file/thư muc, và cách sử dụng CHMOD cũng như ý nghĩa của UMASK. Hãy đưa ra các bình luận nếu bạn có đóng góp hoặc trao đổi gì thêm nhé :D
-- Jukai Helios -&- O-k-k-O --
No comments:
Post a Comment