Nội dung
I. Giới thiệu
Phân quyền trong Linux là một khía cạnh rất quan trọng giúp quản lý quyền truy cập vào các tệp và thư mục trong hệ thống file của bạn. Hệ thống phân quyền trong Linux dựa trên mô hình Unix, sử dụng các quyền cho chủ sở hữu, nhóm và người dùng khác nhau. Dưới đây là một số khái niệm cơ bản về phân quyền trong Linux:
- Quyền Truy Cập Cơ Bản:
- Read (R): Cho phép đọc nội dung của tệp hoặc thư mục.
- Write (W): Cho phép sửa đổi nội dung của tệp hoặc thư mục.
- Execute (X): Cho phép thực thi tệp hoặc truy cập thư mục.
- Quyền Áp Dụng Cho Người Dùng:
- Chủ Sở Hữu (Owner): Người tạo ra tệp hoặc thư mục, có thể quyết định quyền truy cập.
- Nhóm (Group): Các người dùng thuộc vào một nhóm có thể có các quyền riêng biệt.
- Khác (Others): Tất cả những người dùng khác ngoài chủ sở hữu và nhóm.
- Lệnh Phân Quyền Cơ Bản:
chmod
: Lệnh này được sử dụng để thay đổi quyền truy cập của tệp hoặc thư mục.
- Hiển Thị Quyền Truy Cập:
ls
: Dùng với tùy chọn-l
để hiển thị thông tin chi tiết về tệp và thư mục kèm theo quyền truy cập.
- Phân Quyền Đặc Biệt:
- SetUID (s): Cho phép người dùng thực thi tệp với quyền của chủ sở hữu.
- SetGID (s): Cho phép người dùng thực thi tệp với quyền của nhóm chủ sở hữu.
- File và Thư Mục Mặc Định:
umask
: Đặt quyền mặc định cho tệp khi tạo mới.
Có hai quyền cơ bản Permissions và Ownership
Với permissions (quyền truy cập) và ownership (quyền sở hữu) là hai khái niệm cực kỳ quan trọng trong hệ điều hành Linux. Dưới đây là mô tả chi tiết về cả hai khái niệm này:
- Permissions (Quyền Truy Cập):
- Permissions xác định quyền truy cập của người dùng đối với một tệp hay thư mục cụ thể.
- Ba loại quyền cơ bản: Read (R), Write (W), và Execute (X).
- Quyền áp dụng cho ba đối tượng: Owner (Chủ sở hữu), Group (Nhóm), và Others (Người khác).
- Dùng lệnh
chmod
để thay đổi quyền truy cập. Ví dụ:chmod u+rwx,g+rw,o+r myfile
– Cho phép chủ sở hữu có quyền đọc, ghi và thực thi, nhóm có quyền đọc và ghi, người khác có quyền đọc.
- Ownership (Quyền Sở Hữu):
- Ownership quy định người sở hữu và nhóm sở hữu của một tệp hoặc thư mục.
- Ba đối tượng chính: Owner (Chủ sở hữu), Group (Nhóm), và Others (Người khác).
- Chủ sở hữu thường là người tạo ra tệp hoặc thư mục.
- Dùng lệnh
chown
để thay đổi chủ sở hữu vàchgrp
để thay đổi nhóm sở hữu. - Ví dụ:
chown user:group myfile
. Gán tệpmyfile
cho người dùnguser
và nhómgroup
Tại sao phải phân quyền trên Linux
- Bảo mật Hệ Thống:
- Người quản trị có thể kiểm soát quyền truy cập vào các tệp và thư mục, giúp ngăn chặn truy cập trái phép và bảo vệ dữ liệu quan trọng.
- Bảo vệ Dữ liệu Cá Nhân:
- Người sử dụng có thể bảo vệ dữ liệu cá nhân của mình khỏi việc truy cập bởi những người khác.
- Quản lý Tài Nguyên:
- Phân quyền giúp quản trị viên hệ thống quản lý tài nguyên một cách hiệu quả bằng cách giới hạn quyền truy cập của người dùng.
- Ngăn Chặn Thực Thi Nguyên Mã Độc Hại:
- Ngăn chặn người dùng không an toàn thực thi các file độc hại bằng cách giới hạn quyền thực thi.
- Tạo Ra Môi Trường Làm Việc An Toàn:
- Đảm bảo rằng mỗi người dùng chỉ có quyền truy cập vào những tệp và thư mục mà họ cần để thực hiện công việc của mình.
- Quản Lý Nhóm:
- Phân quyền cho phép quản trị viên quản lý quyền truy cập của từng nhóm, giúp tổ chức và quản lý dự án.
- Tính Linh Hoạt:
- Cho phép tạo ra các tài khoản có các quyền khác nhau, tăng tính linh hoạt trong việc quản lý hệ thống.
Lưu ý: Quyền trong Linux là một phần quan trọng của bảo mật hệ thống và giúp người quản trị hệ thống kiểm soát và bảo vệ dữ liệu cũng như tài nguyên hệ thống.
II. Cách xem quyền
Phân loại các File Linux.
Trong Linux, mọi thứ đều được coi như một file và khi sử dụng lệnh ls -l
, mỗi dòng sẽ hiển thị thông tin về một file hoặc thư mục. Các ký tự đầu tiên trong đầu ra của lệnh ls -l
biểu thị loại của file hoặc thư mục.
Dưới đây là một số loại file (file type) phổ biến:
- Nếu là
-
, đó là một file thường. - Nếu là
d
, đó là một thư mục. - Nếu là
l
, đó là symbolic link. - Nếu là
p
, đó là đường ống (pipe). - Nếu là
c
, đó là character device. - Nếu là
b
, đó là block device. - Nếu là
s
, đó là socket.
Đọc hiểu được các kí tự phân quyền.
Với 9 ký tự quyền (permissions) sau ký tự kiểu file trong Linux. Các chữ cái đầu tiên thường chỉ loại file hoặc thư mục, và chín ký tự tiếp theo biểu thị quyền truy cập của chủ sở hữu, nhóm, và người khác
- Quyền Truy Cập (Các ký tự 2-10):
- Các ký tự 2-4 đại diện cho quyền của chủ sở hữu (owner).
- Các ký tự 5-7 đại diện cho quyền của nhóm sở hữu (group).
- Các ký tự 8-10 đại diện cho quyền của người khác (others).
- Mỗi nhóm 3 ký tự này có thể có giá trị là:
r
(read): Quyền đọc.w
(write): Quyền ghi.x
(execute): Quyền thực thi (trong trường hợp của thư mục, quyền này biểu thị quyền vào thư mục).
- Số Liên Kết (số liên kết đứng trước owner và group):
- Là số liên kết tới file hoặc thư mục.
- Chủ Sở Hữu (owner) và Nhóm Sở Hữu (group):
- Là tên của người sở hữu và nhóm sở hữu của file hoặc thư mục.
- Kích Thước (size):
- Kích thước của file trong bytes.
- Ngày và Giờ Sửa Đổi (date và time):
- Thời điểm lần cuối cùng file hoặc thư mục được sửa đổi.
- Tên File hoặc Thư Mục:
- Tên của file hoặc thư mục.
Quyền đặc biệt
Ngoài quyền truy cập thông thường (read, write, execute), còn có ba quyền đặc biệt khác trong Linux là SUID (Set User ID), SGID (Set Group ID), và Sticky Bit. Các quyền đặc biệt này được áp dụng cả cho file và thư mục.
- SUID (Set User ID):
- Khi một file có quyền SUID được thiết lập, nó sẽ chạy với quyền của chủ sở hữu của file thay vì quyền của người chạy file. Điều này thường được sử dụng để cho phép người dùng thực hiện các tác vụ mà họ không có quyền thực hiện thông thường.
- Biểu thị bằng
s
trong quyền thực thi của chủ sở hữu (owner execute permission).
- SGID (Set Group ID):
- Khi một file có quyền SGID được thiết lập, nó sẽ chạy với quyền của nhóm sở hữu của file thay vì quyền của nhóm chạy file. Điều này thường được sử dụng trong các thư mục chia sẻ để đảm bảo mọi tệp được tạo trong thư mục đó đều thuộc cùng một nhóm.
- Biểu thị bằng
s
trong quyền thực thi của nhóm sở hữu (group execute permission).
- Sticky Bit:
- Khi một thư mục có Sticky Bit được thiết lập, chỉ chủ sở hữu của file có thể xóa hoặc di chuyển file trong thư mục đó, ngay cả khi người khác có quyền ghi vào thư mục đó. Thường được sử dụng trong các thư mục chia sẻ như
/tmp
để ngăn chặn việc xóa tệp bởi người dùng khác. - Biểu thị bằng
t
trong quyền thực thi của người khác (others execute permission).
- Khi một thư mục có Sticky Bit được thiết lập, chỉ chủ sở hữu của file có thể xóa hoặc di chuyển file trong thư mục đó, ngay cả khi người khác có quyền ghi vào thư mục đó. Thường được sử dụng trong các thư mục chia sẻ như
Một số lệnh xem quyền.
Lệnh ls -l
ls -l
Lệnh ls
kèm theo tùy chọn -l
hiển thị thông tin chi tiết, bao gồm quyền truy cập.
Giải Thích:
- Quyền truy cập: -rw-r–r– (Chủ sở hữu có quyền đọc và ghi; Nhóm và Người khác chỉ có quyền đọc)
- Chủ sở hữu: kienthuc
- Nhóm sở hữu: root
- Kích thước: 4470 bytes
- Ngày tạo hoặc sửa lần cuối: Jan 17 21:25
- Tệp này thuộc sở hữu của người dùng kienthuc và nhóm root. Chủ sở hữu có quyền đọc và ghi, trong khi nhóm và người khác chỉ có quyền đọc. Kích thước của tệp là 4470 bytes và đã được tạo hoặc sửa lần cuối vào ngày Jan 17 21:25.
Lệnh stat
stat kiemtraphanquyen.txt
Lệnh stat
cung cấp thông tin chi tiết về tệp hoặc thư mục, bao gồm quyền truy cập.
Giải Thích ở Hình
- Tên tệp:
kiemtraphanquyen.txt
- Kích thước:
4470
bytes - Blocks:
16
- IO Block:
4096
- Loại tệp:
regular file
- Device:
fd01h/64769d
- Inode:
77557
- Links:
1
- Quyền truy cập:
(0644/-rw-r--r--)
- Uid (User ID):
1002
(kienthuc) - Gid (Group ID):
0
(root) - Thời điểm quyền truy cập cuối cùng:
2024-01-17 21:25:43.781757712 -0500
- Thời điểm sửa đổi cuối cùng:
2024-01-17 21:25:43.781757712 -0500
- Thời điểm thay đổi cuối cùng:
2024-01-17 21:27:37.440620302 -0500
- Thời điểm tạo: Không có thông tin (hiển thị là
-
)
Thông tin này giúp bạn hiểu rõ hơn về tệp kiemtraphanquyen.txt
, bao gồm kích thước, quyền truy cập, người sở hữu, nhóm sở hữu, và các thời điểm liên quan như thời điểm quyền truy cập cuối cùng, thời điểm sửa đổi cuối cùng và thời điểm thay đổi cuối cùng.
Lệnh ls -lh
Hiển thị kích thước file dễ đọc và quyền truy cập
Giải thích ở hình với file kiemtraphanquyen.txt
- Quyền truy cập:
-rw-r--r--
(Chủ sở hữu có quyền đọc và ghi; Nhóm và Người khác chỉ có quyền đọc). - Chủ sở hữu:
kienthuc
. - Nhóm sở hữu:
root
. - Kích thước:
4.4K
bytes. - Ngày tạo hoặc sửa lần cuối:
Jan 17 21:25
.
Lệnh này cho thấy quyền truy cập, chủ sở hữu, nhóm sở hữu, kích thước và thời gian của hai tệp trên hệ thống của bạn.
Lệnh getfacl
Hiển thị thông tin phân quyền chi tiết bao gồm cả quyền đặc biệt và quyền mở rộng.
Giải thích kết quả hình
getfacl kiemtraphanquyen.txt
cho thấy thông tin về Access Control List (ACL) của tệp kiemtraphanquyen.txt
. Dưới đây là giải thích các thông tin trong đầu ra:
# file: kiemtraphanquyen.txt
: Hiển thị tên của tệp mà ACL áp dụng.# owner: kienthuc
: Chủ sở hữu của tệp là người dùng có tên làkienthuc
.# group: root
: Nhóm sở hữu của tệp là nhóm có tên làroot
.user::rw-
: Quyền truy cập cho chủ sở hữu (kienthuc
) là đọc và ghi, nhưng không có quyền thực thi.group::r--
: Quyền truy cập cho nhóm sở hữu (root
) là chỉ đọc, không có quyền ghi hay thực thi.other::r--
: Quyền truy cập cho người khác (người dùng không phải là chủ sở hữu hay nhóm sở hữu) là chỉ đọc, không có quyền ghi hay thực thi.
Access Control List (ACL) là một cách mở rộng của quyền thông thường trong Linux, cho phép bạn định rõ quyền truy cập của nhiều người dùng và nhóm người dùng cho một tệp hoặc thư mục cụ thể. Trong trường hợp này, quyền truy cập chủ yếu dựa trên quyền thông thường và không có sử dụng đến các quyền đặc biệt khác như SUID, SGID, hoặc sticky bit.
Lệnh namei
Hiển thị thông tin về quyền truy cập và quyền sở hữu của tất cả các thành phần trong một đường dẫn.
Giải thêm kết quả ở hình
f: namnh/kiemtraphanquyen.txt
: Đây là đường dẫn của tệpkiemtraphanquyen.txt
.d namnh
: Đây là thư mục cha của tệpkiemtraphanquyen.txt
, có tên lànamnh
.- kiemtraphanquyen.txt
: Đây là tên của tệpkiemtraphanquyen.txt
.
Như vậy, kiemtraphanquyen.txt
nằm trong thư mục namnh
Lệnh lsattr
Hiển thị và thay đổi thuộc tính mở rộng của tệp hoặc thư mục (nếu có).
Lệnh lsattr kiemtraphanquyen.txt
được sử dụng để hiển thị các thuộc tính của tệp hoặc thư mục trong hệ thống file ext2/ext3/ext4. Trong trường hợp của bạn, kết quả là -------------e--
:
-------------
: Đây là phần của thuộc tính mà không có bất kỳ thuộc tính nào được thiết lập. Các dấu gạch ngang đại diện cho không có thuộc tính nào được thiết lập.e
: Đây có thể là một trong những ký tự mở rộng của thuộc tính, tuy nhiên, để biết ý nghĩa chính xác của nó, bạn có thể cần tham khảo tài liệu hệ thống file cụ thể hoặc sử dụng lệnhman chattr
để xem tất cả các ký tự mở rộng có thể xuất hiện.
Thuộc tính của tệp kiemtraphanquyen.txt
có vẻ không có các thuộc tính đặc biệt được thiết lập.
III. Lời kết
Trong hành trình khám phá Linux, việc hiểu rõ về phân quyền là một bước quan trọng. Đã làm quen với cấu trúc phân quyền thông thường như read (đọc), write (ghi), và execute (thực thi) là chìa khóa mở cửa để tận dụng đầy đủ sức mạnh của hệ điều hành này.
Chúng ta đã tìm hiểu cách đọc và hiểu các ký tự phân quyền thông qua lệnh ls -l
, và thậm chí đi sâu hơn với getfacl
để xem Access Control List (ACL). Điều này là quan trọng khi bạn muốn kiểm soát quyền truy cập của người dùng và nhóm đối với các tệp và thư mục.
Ngoài ra, chúng ta đã khám phá các quyền đặc biệt như SUID, SGID, và Sticky Bit, giúp tăng cường tính bảo mật và hiệu suất trong quản lý tệp và thư mục.
Cuối cùng, nhớ rằng việc sử dụng namei
và lsattr
là những công cụ mạnh mẽ để xem xét chi tiết đường dẫn và thuộc tính của tệp. Việc này giúp bạn có cái nhìn tổng quan về hệ thống file và quản lý phân quyền một cách hiệu quả.
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 888 24768
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com.