Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Lệnh setfacl trong Linux – Quản lý quyền truy cập file hiệu quả

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:10/05/2025
Lượt xem

Đánh giá

Lệnh setfacl trong Linux là công cụ giúp quản lý quyền truy cập file bằng cách sử dụng Access Control List (ACL). Với setfacl, người quản trị có thể phân quyền chi tiết cho người dùng và nhóm, giúp kiểm soát tốt hơn quyền truy cập vào các tài nguyên hệ thống. Bài viết này sẽ giải thích khái niệm ACL, cách sử dụng lệnh setfacl, cũng như ưu nhược điểm khi áp dụng trong môi trường Linux. Bạn cũng sẽ tìm thấy ví dụ minh họa về các tình huống sử dụng thực tế và các tuỳ chọn thông dụng của lệnh này.

Điểm chính cần nắm

  • Access Control List (ACL) là gì?: Giới thiệu về khái niệm và mục đích của Access Control List trong hệ thống Linux.
  • setfacl là gì?: Cung cấp thông tin về lệnh setfacl dùng để quản lý quyền truy cập file và thư mục trong Linux.
  • Ưu và nhược điểm của lệnh setfacl trong Linux: Tổng hợp các ưu điểm và nhược điểm khi sử dụng lệnh setfacl trong môi trường Linux.
  • Cách sử dụng lệnh setfacl: Hướng dẫn cách sử dụng cơ bản lệnh setfacl để phân quyền truy cập.
  • Một số tuỳ chọn thông dụng của lệnh setfacl: Liệt kê các tuỳ chọn cơ bản và nâng cao khi sử dụng lệnh setfacl.
  • Ví dụ minh hoạ cho lệnh setfacl: Cung cấp ví dụ cụ thể về cách sử dụng setfacl trong các tình huống khác nhau.
  • Vietnix – Giải pháp lưu trữ hiệu suất cao cho website của bạn: Giới thiệu về dịch vụ hosting tốc độ cao của Vietnix, với tính năng tối ưu hiệu suất và bảo mật.
  • FAQ: Giải đáp các câu hỏi thường gặp về lệnh setfacl và quản lý quyền truy cập trong Linux.

Access Control List (ACL) là gì?

ACL (Access Control List) là một danh sách các quy tắc được áp dụng lên file, thư mục, thiết bị mạng… nhằm xác định quyền truy cập cụ thể cho từng user hoặc group. ACL thường được quản lý bởi quản trị viên hệ thống và cho phép phân quyền chi tiết hơn so với quyền mặc định của Linux (owner, group,…).

ACL (Access Control List)
ACL (Access Control List)

Lệnh setfacl là gì?

setfacl (Set File Access Control List) là một lệnh trong hệ điều hành Linux cho phép thiết lập Access Control List (ACL) – danh sách quyền truy cập chi tiết cho các người dùngnhóm cụ thể trên từng filehoặc thư mục. Khác với hệ thống phân quyền thông thường (user, group,…), ACL cung cấp cách phân quyền linh hoạt và chi tiết hơn, cho phép nhiều người dùng/nhóm có quyền khác nhau trên cùng một file.

Ví dụ: Nếu một tệp thuộc quyền sở hữu của user A, bạn vẫn có thể cấp quyền chỉ đọc cho user B bằng cách dùng setfacl.

Ưu và nhược điểm của lệnh setfacl trong Linux

Ưu điểm
  • default icon

    Phân quyền chi tiết

  • default icon

    Linh hoạt hơn phân quyền mặc định

  • default icon

    Không ảnh hưởng đến người dùng khác

  • default icon

    Cập nhật quyền nhanh chóng

  • default icon

    Hữu ích trong môi trường chia sẻ

Nhược điểm
  • default icon

    Quản lý phức tạp hơn

  • default icon

    Không tương thích hoàn toàn trên mọi hệ thống

  • default icon

    Dễ bị nhầm lẫn

  • default icon

    Phụ thuộc vào quyền mask

Ưu điểm của lệnh setfacl trong Linux

  • Phân quyền chi tiết: Cho phép chỉ định quyền truy cập cụ thể cho nhiều user và group trên cùng một file/thư mục.
  • Linh hoạt hơn phân quyền mặc định: Không bị giới hạn chỉ bởi owner, group và others như cách phân quyền thông thường.
  • Không ảnh hưởng đến người dùng khác: Việc cấp quyền cho một user không làm thay đổi quyền của các user khác.
  • Cập nhật quyền nhanh chóng: Có thể thêm, sửa hoặc xoá quyền truy cập mà không cần thay đổi owner/group.
  • Hữu ích trong môi trường chia sẻ: Đặc biệt phù hợp với hệ thống có nhiều người dùng cần truy cập một cách kiểm soát.

Nhược điểm của setfacl

  • Quản lý phức tạp hơn: Càng nhiều người dùng và nhóm được phân quyền, việc theo dõi và kiểm soát ACL càng trở nên khó khăn.
  • Không tương thích hoàn toàn trên mọi hệ thống: Một số hệ thống tập tin cũ (hoặc chưa bật ACL) có thể không hỗ trợ đầy đủ.
  • Dễ bị nhầm lẫn: Khi ACL được áp dụng rộng rãi, người quản trị có thể quên ai có quyền gì, đặc biệt nếu không có công cụ giám sát ACL tốt.
  • Phụ thuộc vào quyền mask: Nếu không hiểu rõ về “mask”, bạn có thể cấp quyền nhưng thực tế user vẫn không truy cập được do bị mask giới hạn.

Cách sử dụng lệnh setfacl

  • Cú pháp cơ bản
setfacl [tùy_chọn] [loại_đối_tượng]:[tên_user/group]:[quyền] <tên_file/thư_mục>

Trong đó:

  • setfacl: công cụ trên Linux dùng để thiết lập quyền ACL trên file/thư mục.
  • [tùy_chọn]: một số tuỳ chọn thường dùng:
    • -m: sửa đổi hoặc thêm ACL
    • -x: xoá ACL

[loại_đối_tượng] – chỉ định đối tượng cần phân quyền

Ký hiệuÝ nghĩa
uuser – người dùng cụ thể
ggroup – nhóm người dùng
oother – tất cả người dùng còn lại
[loại_đối_tượng] – chỉ định đối tượng cần phân quyền

[quyền] – quyền được gán

Ký hiệuMô tả
rread – quyền đọc
wwrite – quyền ghi, chỉnh sửa
xexecute – quyền thực thi/chạy file

iconLưu ý

Có thể kết hợp nhiều quyền, ví dụ: rw, rx, rwx.

Ví dụ:

setfacl -m u:nam:rw example.txt
# Gán quyền đọc và ghi cho user nam trên file example.txt.

Một số tuỳ chọn thông dụng của lệnh setfacl

Tuỳ chọnChức năng
-m, --modifySửa đổi hoặc thêm ACL cho file/thư mục
-x, --removeXoá ACL cho user/group cụ thể
-b, --remove-allXoá toàn bộ ACL đang áp dụng
-d, --defaultThiết lập quyền mặc định cho file/thư mục mới trong một thư mục
-k, --remove-defaultXoá quyền mặc định đã thiết lập
-R, --recursiveÁp dụng ACL một cách đệ quy lên toàn bộ nội dung bên trong thư mục
--setThiết lập toàn bộ ACL cho một file (ghi đè hiện tại)
--set-fileThiết lập ACL từ một file ACL đã lưu trước đó
-M, --restore=fileKhôi phục ACL từ một file đã lưu
--mask, --no-maskLiên quan đến quyền hiệu lực (effective rights) của ACL
Một số tuỳ chọn thông dụng của lệnh setfacl

Ví dụ 1: Gán quyền đọc + ghi cho user kali trên file gfg.txt

Lệnh này dùng để cấp quyền truy cập (đọc, ghi, thực thi) cho một user trên một file nhất định. Có thể gán cho nhiều user khác nhau trên cùng một file.

setfacl -m u:kali:rw gfg.txt

→ Gán quyền đọc (r)ghi (w) cho user kali trên file gfg.txt.

Ví dụ 1: Gán quyền đọc + ghi cho user kali trên file gfg.txt
Ví dụ 1: Gán quyền đọc + ghi cho user kali trên file gfg.txt

Ví dụ 2: Gán quyền đọc + thực thi cho user kali trên nhiều file/thư mục

Với setfacl, bạn có thể gán quyền cho một user trên nhiều file hoặc thư mục cùng lúc.

setfacl -m u:kali:rx f1.txt f2.txt d1

→ Gán quyền đọc (r)thực thi (x) cho user kali trên file f1.txt, f2.txt và thư mục d1.

Ví dụ 2: Gán quyền đọc + thực thi cho user kali trên nhiều file/thư mục
Ví dụ 2: Gán quyền đọc + thực thi cho user kali trên nhiều file/thư mục

Ví dụ 3: Xoá toàn bộ quyền ACL của user kali trên thư mục d1

Lệnh này dùng để xoá quyền truy cập đã cấp cho user, cụ thể là user kali trên thư mục d1.

setfacl -x u:kali d1

→ Loại bỏ mọi quyền mà user kali đang có trên thư mục d1.

Ví dụ 3: Xoá toàn bộ quyền ACL của user kali trên thư mục d1
Ví dụ 3: Xoá toàn bộ quyền ACL của user kali trên thư mục d1

Ví dụ 4: Hiển thị ACL của file f2.txt

Dùng lệnh getfacl để kiểm tra các quyền đã được cấp qua ACL trên một file hoặc thư mục.

getfacl f2.txt

→ Hiển thị danh sách ACL chi tiết của file f2.txt, bao gồm: owner, group, các user được cấp quyền, và quyền mask.

iconLưu ý

Không có tuỳ chọn -a trong getfacl. Dòng getfacl -a f2.txt bạn gửi là không hợp lệ.

Ví dụ 4: Hiển thị ACL của file f2.txt
Ví dụ 4: Hiển thị ACL của file f2.txt

Ví dụ 5: Hiển thị quyền mặc định (default ACL)

ACL mặc định thường được thiết lập cho thư mục để áp dụng tự động cho các file mới tạo bên trong.

getfacl -d f2.txt

→ Hiển thị quyền mặc định (nếu có) của file hoặc thư mục f2.txt.

Ví dụ 5: Hiển thị quyền mặc định (default ACL)
Ví dụ 5: Hiển thị quyền mặc định (default ACL)

Vietnix – Giải pháp lưu trữ hiệu suất cao cho website của bạn

Vietnix cung cấp các dịch vụ lưu trữ web như Hosting, VPS và máy chủ chuyên dụng với tốc độ cao, khả năng xử lý ổn định và hệ thống bảo mật tiên tiến. Nhờ hạ tầng hiện đại và đội ngũ kỹ thuật giàu kinh nghiệm, Vietnix giúp website của bạn luôn vận hành mượt mà, an toàn và sẵn sàng cho mọi nhu cầu mở rộng. Khách hàng còn được hỗ trợ kỹ thuật 24/7, đảm bảo xử lý nhanh chóng mọi vấn đề phát sinh. Vietnix là lựa chọn lý tưởng cho cá nhân và doanh nghiệp muốn tối ưu tốc độ truy cập, nâng cao hiệu quả vận hành website.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.

Câu hỏi thường gặp

Sự khác biệt giữa chmod và setfacl là gì?

chmod chỉ gán quyền cho user, group và others, còn setfacl cho phép gán quyền cụ thể cho nhiều người dùng/nhóm cùng lúc.

Làm sao để hiển thị các quyền đã được gán bằng ACL?

Dùng lệnh getfacl tên_file để xem quyền ACL đã thiết lập.

Nếu user không có quyền trong ACL, quyền truy cập sẽ như thế nào?

User chỉ được quyền theo chmod truyền thống (user/group/others), ACL không có tác dụng nếu không có entry tương ứng.

ACL mask là gì và tại sao nó có thể hạn chế quyền được gán bởi setfacl?

mask là giới hạn tối đa cho các quyền ACL bổ sung. Nếu quyền gán vượt quá mask, nó sẽ bị rút gọn theo mask hiện tại.

Có thể sao lưu và phục hồi toàn bộ ACL của một file/thư mục không?

Có, dùng getfacl > backup.acl để sao lưu và setfacl --restore=backup.acl để khôi phục.

ACL có được áp dụng cho hệ thống file nào cũng được không?

Không. Chỉ các hệ thống hỗ trợ ACL như ext3, ext4, xfs… mới dùng được.

Có thể dùng setfacl để phân quyền qua SSH hoặc NFS không?

Có, miễn là hệ thống file được mount hỗ trợ ACL thì các quyền vẫn được áp dụng.

Có cách nào để tự động áp dụng ACL cho các file mới tạo trong thư mục không?

Có, dùng ACL mặc định (default ACL) cho thư mục đó để kế thừa quyền cho file mới.

Lời kết

Việc áp dụng lệnh setfacl trong Linux giúp cải thiện bảo mật và phân quyền truy cập linh hoạt hơn so với các phương pháp truyền thống. Điều này giúp người quản trị hệ thống kiểm soát quyền truy cập theo yêu cầu cụ thể của từng người dùng. Nếu bạn có bất cứ thắc mắc nào về cách sử dụng setfacl hoặc gặp khó khăn trong việc cấu hình ACL, đừng ngần ngại liên hệ với mình!

Mọi người cũng xem:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi 30 tháng 4
Khi mua Hosting/VPS
16/04/2025 - 16/05/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG