Skip to content

Tìm hiểu phân quyền trong Linux#

I. Phân quyền cơ bản#

1. Quyền hạn là gì và tại sao phải phân quyền trên Linux?#

Quyền hạn trong Linux là khả năng truy cập vào một file của một người dùng trong hệ thống. Vì Linux hỗ trợ nhiều người dùng đồng thời, việc phân quyền là rất quan trọng.

2. Các loại file#

Tất cả mọi thứ trong Linux đều được coi là file. Khi sử dụng lệnh ls -l, có 10 ký tự hiển thị trước người và nhóm sở hữu, ký tự đầu tiên là loại file: - -: file thông thường - d: thư mục - l: symbolic link - p: đường ống - c: character device - b: block device - s: socket

3. Sở hữu tập tin#

3.1. User owner và Group owner#

Mọi file đều có user owner và group owner, có thể xem chúng bằng lệnh ls -l.

3.2 chgrpchown#

  • Dùng chgrp để thay đổi group owner của file.
  • Dùng chown để thay đổi user owner của file hoặc cả user và group owner.

4. Quyền#

4.1. rwx#

Chín ký tự sau ký tự kiểu file tượng trưng cho quyền trong ba bộ ba: r (đọc), w (ghi), và x (thực thi). | permission | Trên một file | Trên một thư mục | |------------|---------------------|-----------------------------| | r (read) | đọc nội dung (cat) | đọc nội dung thư mục (ls) | | w (write) | thay đổi nội dung | tạo hoặc xóa file/thư mục | | x (execute)| thực thi file | vào thư mục |

Ví dụ: quyền rwxr--r-- trên một file là dành cho người sở hữu, và r cho những user khác.

4.2. Thiết lập quyền (chmod)#

Sử dụng chmod để thay đổi quyền của file. Cú pháp: chmod [đối tượng][kiểu thay đổi][quyền] [file].

4.3. Phân quyền dùng số bát phân#

Quyền cũng có thể được đặt bằng số octal (bát phân): - r = 4, w = 2, x = 1 - chmod 777 file có nghĩa là rwxrwxrwx, và chmod 644 filerw-r--r--.

4.4. umask#

Giá trị umask xác định quyền mặc định của file mới. Ví dụ: umask 022 dẫn đến quyền mặc định là 644 cho file.

4.5. mkdir -m#

Khi tạo thư mục, có thể đặt quyền mặc định với tùy chọn -m, ví dụ: mkdir -m 700 MyDir.

4.6. cp -p#

Sử dụng cp -p để sao chép file với quyền và thời gian giống file gốc.

II. File permission nâng cao#

1. Sticky bit trên thư mục#

Sticky bit được cài trên thư mục để ngăn xóa các file con bởi người dùng không có quyền sở hữu. Sticky bit hiển thị ở vị trí x của o, với ký tự t hoặc T.

2. Setgid bit trên thư mục#

Setgid đảm bảo các file tạo trong thư mục đều thuộc group owner của thư mục. Đặt bằng s hoặc S tại g.

3. Setgid và setuid trên file#

setuid cho phép file thực thi với quyền của user sở hữu. setgid cho phép thực thi với thông tin của group owner.

1. Inode#

Inode là cấu trúc dữ liệu chứa các metadata của file (trừ tên và nội dung file). Số inode có thể xem bằng lệnh ls -li.

2. Thư mục trong Linux#

Một thư mục là một file đặc biệt chứa một mảng kết nối tên file với inodes.

Hard link chia sẻ inode với file gốc, do đó có cùng nội dung và tồn tại kể cả khi xóa file gốc. Hard link chỉ có thể tồn tại trong cùng một filesystem.

Symbolic link không kết nối với inode mà ánh xạ tên file với tên mục tiêu, có thể link đến bất kỳ nơi nào.

  • Soft link không chứa nội dung file gốc và có thể liên kết với mọi nơi.
  • Hard link chứa nội dung file gốc, chỉ tồn tại trong cùng một filesystem và không thể liên kết với thư mục.