Thứ Bảy, 23 tháng 8, 2025

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

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:

Có thể bạn sẽ thích
  • Cách Kill Process ở Linux bằng Command Line
  • Hướng dẫn quản lý định dạng file RAR trong Linux
  • Kiểm tra dung lượng trên linux với lệnh df
  • Các trình quản lý tệp tốt nhất trên Linux
  • Hướng dẫn sử dụng lệnh chattr trong Linux
  • Cài đặt công cụ nén Zstd trong Linux
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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:

  1. 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.
  2. 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ệp myfile cho người dùng user và nhóm group

Tại sao phải phân quyền trên Linux

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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:

loai file
  • 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

CleanShot 2024 01 18 at 10.58.18@2x
CleanShot 2024 01 18 at 10.48.16@2x
  1. 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).
  2. 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.
  3. 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.
  4. Kích Thước (size):
    • Kích thước của file trong bytes.
  5. 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.
  6. Tên File hoặc Thư Mục:
    • Tên của file hoặc thư mục.

Quyền đặc biệt

quyen dac biet

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.

CleanShot 2024 01 18 at 11.30.45@2x
  1. 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).
  2. 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).
  3. 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).

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.

CleanShot 2024 01 18 at 09.27.48@2x

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.

CleanShot 2024 01 18 at 09.34.23@2x

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

CleanShot 2024 01 21 at 21.29.23@2x

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.

CleanShot 2024 01 21 at 21.33.46@2x

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.

CleanShot 2024 01 21 at 21.45.10@2x

Giải thêm kết quả ở hình

  • f: namnh/kiemtraphanquyen.txt: Đây là đường dẫn của tệp kiemtraphanquyen.txt.
  • d namnh: Đây là thư mục cha của tệp kiemtraphanquyen.txt, có tên là namnh.
  • - kiemtraphanquyen.txt: Đây là tên của tệp kiemtraphanquyen.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ó).

CleanShot 2024 01 21 at 21.47.45@2x

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ệnh man 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ả.

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cở sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master