Day 3: File Permission & Ownership
Quyền và Sở hữu Tập tin
Hệ thống phân quyền trong Linux - một trong những nền tảng quan trọng nhất của bảo mật Linux. Hiểu rõ cách hoạt động của quyền tập tin sẽ giúp quản lý máy chủ Linux hiệu quả và an toàn.
3.1. Cấu trúc quyền trong Linux
Khi sử dụng lệnh ls -l, sẽ thấy thông tin về quyền hiển thị ở cột đầu tiên, có dạng như sau:
-rwxr-xr--
Giải thích cấu trúc quyền:
Ý nghĩa của từng quyền:
Biểu diễn số:
Mỗi quyền có giá trị số:
Tổng của ba giá trị này tạo thành một chữ số octal:
Ví dụ: Quyền rwxr-xr-- được biểu diễn bằng số là: 754
Bảng tổng hợp quyền file phổ biến:
Giá trị
Biểu diễn
Mô tả và Mục đích sử dụng
0644
rw-r--r--
File thông thường (chủ sở hữu đọc+ghi, người khác chỉ đọc)
0640
rw-r-----
File có giới hạn (chủ sở hữu đọc+ghi, nhóm chỉ đọc, người khác không quyền)
0600
rw-------
File riêng tư (chỉ chủ sở hữu đọc+ghi)
0666
rw-rw-rw-
File được chia sẻ (tất cả có quyền đọc và ghi)
0444
r--r--r--
File chỉ đọc cho tất cả
0755
rwxr-xr-x
Script/chương trình thực thi (chủ sở hữu toàn quyền, người khác đọc+thực thi)
0750
rwxr-x---
Script/thư mục giới hạn (chủ sở hữu toàn quyền, nhóm đọc+thực thi)
0700
rwx------
Thư mục/script riêng tư (chỉ chủ sở hữu truy cập)
0711
rwx--x--x
Thư mục cho phép người khác đi qua nhưng không liệt kê nội dung
0710
rwx--x---
Thư mục cho phép nhóm đi qua nhưng không liệt kê nội dung
0777
rwxrwxrwx
Quyền đầy đủ cho mọi người (không khuyến khích vì lý do bảo mật)
0760
rwxrw----
Chủ sở hữu toàn quyền, nhóm đọc+ghi, người khác không có quyền
0770
rwxrwx---
Chủ sở hữu và nhóm có toàn quyền, người khác không có quyền
0774
rwxrwxr--
Chủ sở hữu và nhóm có toàn quyền, người khác chỉ có quyền đọc
Quyền 644 (rw-r--r--) là một trong những quyền phổ biến nhất cho các file thông thường, cho phép chủ sở hữu đọc và ghi file, trong khi nhóm và những người khác chỉ có thể đọc file.
3.2. Thay đổi quyền với chmod
Lệnh chmod (change mode) dùng để thay đổi quyền của file và thư mục.
Sử dụng chế độ ký tự:
Trong đó:
Sử dụng chế độ số:
Áp dụng đệ quy cho thư mục:
3.3. Thay đổi sở hữu với chown
Lệnh chown (change owner) dùng để thay đổi chủ sở hữu và nhóm của file và thư mục.
# Thay đổi chủ sở hữu
sudo chown username filename
# Thay đổi cả chủ sở hữu và nhóm
sudo chown username:groupname filename
# Chỉ thay đổi nhóm (có thể dùng chgrp)
sudo chown :groupname filename
# hoặc
sudo chgrp groupname filename
# Áp dụng đệ quy cho thư mục
sudo chown -R username:groupname directory_name
3.4. Quyền đặc biệt (Special Permissions)
SUID (Set User ID) - 4000
SGID (Set Group ID) - 2000
Sticky Bit - 1000
3.5. Ví dụ thực tế về phân quyền
1. Thiết lập thư mục web server
2. Thiết lập thư mục chia sẻ cho một nhóm
3. Bảo vệ file cấu hình nhạy cảm
Thực hành
Tạo một file script và đặt quyền thực thi cho nó:
touch myscript.sh
chmod +x myscript.sh
Tạo một thư mục và đặt quyền cho nhóm có thể ghi vào:
mkdir shared_folder
chmod 775 shared_folder
Thay đổi quyền sở hữu file và thư mục:
sudo chown username:groupname filename
