Phân quyền trong Linux

Như đã biết, Linux là hệ điều hành đa người dùng, do đó vấn đề phân quyền truy xuất các file trong hệ thống rất được quan tâm. Để có cái nhìn tổng quan trong vấn đề này, hãy theo dõi bài viết.

Mọi thứ trong Linux đều là file, để biết được quyền đang hiện hành của file hay thư mục ta sử dụng câu lệnh:    ls -lah

phan quyen trong linux,file system permisson

Lấy ví dụ sau để phân tích từng phần:


drwxr-xr-x    2  root  root  4.0K  May  5  15:31  code


  Mỗi một file hoặc thư mục đều có 3 nhóm sử dụng quyền cơ bản:
   - Owner:  Đây là nhóm chủ sở hữu của file hoặc folder, user tạo ra file hoặc folder.
   - Group:  Đây là nhóm sở hữu của file hoặc folder.
   - Other: Các nhóm khác, group không chứa user tạo ra file hoặc folder.

  Mỗi một file hoặc thư mục đều có các quyền chính sau:

  - Read: Quyền đọc file. (r)
  - Write: Quyền viết file. (w)
  - Execute: Quyền thực thi file. (x)

  Và các quyền đặc biệt:

  - SUid.
  - SGid.
  - Stick bit.

  Bất kì một user nào trong hệ thống khi tạo mới một file ( tập tin và thư mục), đều có những quyền mặc định mà khi file đó được tạo ra, sở hữu những quyền đó. Vậy một file có quyền truy cập mặc định đó là gì ? Quyền truy cập mặc định của file đó được quyết định bởi quyền truy cập cơ sở và giá trị umask:
    - Giá trị Umask: Chính là quyền mặc định của file được tạo ra do user nào, nó có đặc điểm sau:
           + Gồm 4 số bát phân.
           + Được tạo ra bởi user root: 0022.
           + Được tạo ra bởi user thưởng:  0002
    - Quyền truy cập cơ sở: Là quyền mặc định của 1file được tạo ra do đặc loại file:
           + Nếu file là một tập tin:  666
           + Nếu file là một thư mục:  777

  Quyển truy cập mặc định = Quyền truy cập cơ sở - Giá trị Umask.

  Ví dụ: Quyền truy cập mặc định củ thư mục do user root tạo ra trên hệ thống: 777 - 0022 = 755

  Ta có thể thay đổi giá tri Umask sử dụng 2 cách sau:
    - Sử dụng câu lệnh với tiện ích : Umask.
    - Chỉnh sửa file /etc/bashrc hoặc /etc/profile trong thư mục home của người dùng.

  1. Trường đầu tiên:  drwxr-xr-x 

    - Trường này cho biết loại file, quyền truy cập file của người dùng.
    - Các cờ được đánh dấu:
       - - : File thông thường như: file txt, file nhị phân, chương trình,... Những file này là những bit liên tiếp nhau.
       - d : Thư mục. Chúng được dùng để xác định vị của tập tin trông cây hệ thống.
       - l : Symbolic Link của thư mục hoặc file.
       - s : Socket.
       - p : Pipe. Là loại file được sử dụng để trao đổi dữ liệu giữa các tiến trình.
       - c : Character special device file. Dùng để kết nối các thiết bị vật lý, trao đổi dữ liệu và không sử dụng buffer.
       - b : Block special device file. Dùng để kết nói các thiết bị vật lý, trao đổi dữ liệu dạng block.
       - s/ S: Quyền đặc biệt cho file hoặc thư mục setUid/SUid hoặc setGid/SGid.
       - t/ T: Quyền đặc biệt cho file hoặc thư mục Stick bit.

    - Bộ quyền đầu tiên : rwx tương ứng với 111 trong nhị phân hay 7 trong thập phân:
       + Bộ quyền này thuộc chủ sơ hữu của file, có các quyền với file.
       + Nếu không có quyền nào thì kí hiệu là - tương ứng với 0 trong nhị phân.

    - Bộ quyền tiếp theo : r-x tương ứng với 101 trong nhị phân hay 5 trong thập phân:
       + Bộ quyền này thuộc nhóm sở hữu, có các quyền với file.

    - Bộ quyền tiếp theo : r-x tương ứng với 101 trong nhị phân hay 5 trong thập phân:
       + Bộ quyền này thuộc các nhóm khác với nhóm sở hữu, có các quyền với file.

    Quyền đặc biệt:

      - SUID:
          + Mượn quyền của user làm chủ file đó để thực thi.
          + Khi file đó được setUid thì sẽ hiển thị kí tự s tại quyền thực thi thay cho x. Nếu file đó chỉ có quyền setUid mà không có quyền execute thì sẽ là S.

suid in linu
SetUID


      - SGID:
          + Mượn quyền của nhóm sở hữu file đó để thực thi.
          + Khi file đó được setGid thì sẽ hiển thị kí tự s tại quyền thực thi thay cho x. Nếu file đó chỉ có quyền setGid mà không có quyền execute thì sẽ là S.

sgid in linux
SetGID


      - Stick Bit:
          + Dùng để bảo vệ tập tin trong thư mục public.
          + Chỉ có chủ sở hữu được phép xóa, thay đổi tên file/ thư mục.
          + Các user khác vẫn có quyền tạo, ghi nhưng không được xóa, đổi tên file/ thư mục.
          + Khi file đó được set Stick Bit thì sẽ hiển thị kí tự t tại quyền thực thi thay cho x. Nếu file đó chỉ có quyền set Stick Bit mà không có quyền execute thì sẽ là T.

stick bit in linux
Set Stick Bit


 2. Trường chủ sở hữu: root
 
   - Cho biết chủ sở hữu file thuộc user nào.
   - Chủ sở hữu file được phép thực hiện các quyền được nêu ở trên.

 3. Trường nhóm sở hữu: root

   - Cho biết nhóm sở hữu file.
   - Nhóm sở hữu file được phép thực hiện các quyền được nêu ở trên.

Để thay đổi được các quyền hạn của file đối với user, nhóm ta xem tiếp bài viết tại đây.








0 nhận xét:

Post a Comment