Quản lý quyền truy cập file bằng lệnh chmod Linux

Trong hệ điều hành Linux, quyền truy cập tệp và thư mục là yếu tố quan trọng giúp bảo mật hệ thống và kiểm soát tài nguyên. Lệnh chmod cho phép quản trị viên và người dùng thay đổi quyền truy cập một cách linh hoạt, giúp quản lý hiệu quả dữ liệu trên máy chủ hoặc máy cá nhân.

Bài viết này sẽ hướng dẫn chi tiết cách sử dụng chmod, phân quyền trong Linux, cũng như các mẹo hữu ích giúp bạn quản lý tệp hiệu quả hơn.

lệnh-chmod-linux

1. Tổng quan về quyền truy cập tệp Trong Linux

Trong Linux, mỗi tệp và thư mục đều có ba loại quyền cơ bản:

  • Read (r - đọc): Xem nội dung tệp hoặc danh sách thư mục.

  • Write (w - ghi): Chỉnh sửa nội dung tệp hoặc thêm/xóa tệp trong thư mục.

  • Execute (x - thực thi): Chạy tệp dưới dạng chương trình hoặc truy cập thư mục.

Các quyền này áp dụng cho ba nhóm người dùng:

  • Owner (chủ sở hữu): Người tạo tệp/thư mục.

  • Group (nhóm): Các thành viên trong nhóm sở hữu tệp.

  • Others (người khác): Những người còn lại trên hệ thống.

Kiểm tra quyền tệp bằng lệnh:

ls -l filename

Kết quả hiển thị như sau:

-rwxr-xr--  1 user group 1234 Feb 14 12:34 filename
  • rwx (owner - chủ sở hữu): Có quyền đọc, ghi và thực thi.

  • r-x (group - nhóm): Có quyền đọc và thực thi.

  • r-- (others - người khác): Chỉ có quyền đọc.

2. Cách sử dụng lệnh chmod

Lệnh chmod có thể được sử dụng theo hai cách: ký hiệu (symbolic mode)số (numeric mode).

2.1 Sử dụng chmod theo ký hiệu

Cú pháp:

chmod [who][operator][permission] file
  • [who]: u (chủ sở hữu), g (nhóm), o (người khác), a (tất cả)

  • [operator]: + (thêm quyền), - (xóa quyền), = (gán quyền mới)

  • [permission]: r, w, x

Ví dụ:

chmod u+x script.sh  # Thêm quyền thực thi cho chủ sở hữu
chmod g-w file.txt   # Loại bỏ quyền ghi của nhóm
chmod o=r file.txt   # Đặt quyền chỉ đọc cho người khác

2.2 Sử dụng chmod theo số

Các quyền được mã hóa số:

  • Read = 4

  • Write = 2

  • Execute = 1

Khi kết hợp, chúng tạo thành giá trị quyền truy cập:

chmod 755 file.sh  # Chủ sở hữu có quyền đọc, ghi, thực thi; nhóm và người khác chỉ có quyền đọc và thực thi
chmod 644 file.txt # Chủ sở hữu có quyền đọc, ghi; nhóm và người khác chỉ có quyền đọc

3. Quản lý User & Group trong Linux

3.1 Quản lý người dùng

Thêm người dùng mới:

sudo adduser newuser

Xóa người dùng:

sudo userdel -r newuser

3.2 Quản lý nhóm

Thêm nhóm mới:

sudo groupadd devteam

Thêm người dùng vào nhóm:

sudo usermod -aG devteam newuser

Xóa nhóm:

sudo groupdel devteam

4. Kích hoạt quyền sudo

Để cấp quyền sudo cho một tài khoản:

sudo usermod -aG sudo username

Kiểm tra quyền sudo:

sudo -l

5. Các tình huống thực tế & câu hỏi thường gặp

5.1 Lệnh chmod 777 có an toàn không?

chmod 777 cấp toàn quyền cho tất cả người dùng, có thể gây rủi ro bảo mật nếu áp dụng trên tệp quan trọng. Chỉ sử dụng khi thực sự cần thiết.

5.2 Làm thế nào để kiểm tra quyền tệp?

Dùng lệnh:

ls -l filename

5.3 Sự khác biệt giữa chmod 755chmod 644 là gì?

  • 755: Chủ sở hữu có toàn quyền, nhóm và người khác chỉ có quyền đọc và thực thi.

  • 644: Chủ sở hữu có quyền đọc và ghi, nhóm và người khác chỉ có quyền đọc.

5.4 Làm thế nào để cấp quyền thực thi cho tất cả người dùng?

Dùng lệnh:

chmod a+x script.sh

5.5 Thay đổi quyền cho tất cả tệp trong thư mục?

Dùng tùy chọn -R:

chmod -R 755 /path/to/directory

Kết luận

Lệnh chmod là công cụ mạnh mẽ giúp bạn quản lý quyền truy cập trong Linux. Việc hiểu rõ cách sử dụng chmod sẽ giúp bạn kiểm soát tốt hơn hệ thống của mình, từ việc phân quyền tệp cá nhân đến quản lý quyền trên máy chủ. Hy vọng bài viết này hữu ích với bạn.