Cơ bản về phân quyền trong Linux
1. Các nhóm phân quyền
Trong Linux mỗi file (folder) đều có 3 nhóm phân quyền chính:
- owner: Quyền sở hữu này chỉ áp dụng cho chủ sở hữu của file và không ảnh hưởng đến hoạt động của người dùng khác.
- group: Quyền sở hữu này được áp dụng cho nhóm đã được gán cho file.
- others: Cấp quyền cho những người dùng khác không thuộc hai nhóm trên.
Tuy nhiên có ngoại lệ đó là root
(super user) không bị ràng buộc bởi bất cứ sự phân quyền nào, có toàn quyền trên mọi file của hệ thống.
2. Các loại phân quyền
Mỗi file có 3 loại quyền cơ bản:
- read: Quyền cho phép người dùng đọc nội dung của file.
- write: Quyền cho phép người dùng viết hoặc thay đổi nội dung của file.
- *execute *: Quyền cho phép người dùng thực thi file.
Tên quyền | Ký hiệu | Dạng bát phân | Mô tả |
---|---|---|---|
Read | r | 4 | Quyền đọc file |
Write | w | 2 | Quyền ghi file |
Execute | x | 1 | Quyền thực thi file |
- Kí tự đầu tiên là một cờ đặc biệt để chỉ loại file,
-
với file thông thường,d
với thư mục,c
với thiết bị,l
với liên kết. - 3 ký tự tiếp theo (rwx) thể hiện quyền của owner có mọi quyền đối với file.
- 3 ký tự tiếp theo (rwx) thể hiện quyền của group có mọi quyền đối với file.
- 3 ký tự tiếp theo (r--) thể hiện quyền của others chỉ có quyền đọc file.
- Số nguyên chỉ số lượng liên kết cứng tới file.
- Cuối cùng là tên owner và group, ở đây owner là apache và group là apache
4. Thay đổi phân quyền
Các thiết lập mặc định của Linux về file nhiều khi sẽ không giải quyết được vấn đề thiết lập hoặc khi bạn muốn chia sẻ quyền cho người dùng khác...May mắn là việc phân quyền cũng không quá phức tạp.
a. Ký hiệu chung
Group Permission
Group Permision | Ký hiệu | Mô tả |
---|---|---|
Owner | u | Chủ sở hữu |
Group | g | Nhóm sở hữu |
Other | o | Người dùng và nhóm khác |
All | a | Toàn bộ người dùng và nhóm (tương đương ugo ) |
Operator
Operator | Ký hiệu | Mô tả |
---|---|---|
Add | + | Cấp thêm quyền |
Remove | - | Loại bỏ quyền |
Assign | = | Chỉ định quyền cụ thể |
- -R : áp dụng cho cả sub folder.
- -f : tiếp tục kể cả khi xảy ra lỗi.
- -v : hiển thị quá trình.
VD:
chmod a+r comments.txt
-> Thêm quyền đọc cho tất cả người dùng và nhóm.
chmod u=rw,g=r,o= plan.sh
-> Cho chủ sở hữu quyền đọc và ghi, group sở hữu quyền đọc, những người dùng và nhóm khác không được làm gì.
chmod -R 775 logs
-> Cho chủ sở hữu và group sở hữu full quyền, còn những người khác chỉ được đọc và thực thi.
b. Sử dụng chown
và chgrp
chown (change ownership): Thay đổi "chủ quyền" của file hoặc folder. Cú pháp:
chown [options] [newowner:newgroup] file
Options cũng tương tự như chmod
ngoài ra thì còn vài tùy chọn như -h
, --from
, --reference
mà tôi sẽ không đề cập đến ở đây mà tập trung vào việc định danh chủ sở hữu mới. Có 5 cách để làm việc này:
Form | Description |
---|---|
user | Tên của người sở hữu mới, dấu hai chấm (":") và tên nhóm mới được bỏ qua, tức là nhóm sở hữu sẽ không thay đổi |
user:group | Dạng đầy đủ của chủ mới và nhóm mới, được ngăn cách bởi dấu hai chấm và không có khoảng cách ở giữa |
:group | Chủ sở hữu sẽ được bỏ qua, nhóm sở hữu mới bắt buộc phải đi sau dấu hai chấm |
user: | Nhóm sở hữu được bỏ qua, ở đây nhóm sở hữu mới sẽ được gán bằng nhóm login của user |
: | Bỏ qua cả hai, tức là không thay đổi gì cả |
chgrp (change group): Thay đổi nhóm sở hữu, cú pháp:
chgrp [options] group file
Đến đây có lẽ là đơn giản rồi, không cần phải giải thích gì thêm vì câu lệnh này cũng tương tự (đơn giản hơn) hai câu lệnh trên.
Trên đây là tổng quan về phân quyền trong Linux, một số câu lệnh cơ bản. Mong mọi người có thể hiểu rõ hơn về cơ chế phân quyền của hệ điều hành này.