67 Nguyễn Thị Định, Phường An Hải, TP. Đà Nẵng
Hướng dẫn

Phân quyền trên Linux: SUID và SGID

Phân quyền trên Linux: SUID và SGID
Chia sẻ

Phân quyền trên Linux đôi khi có thể khiến bạn thấy hơi “rắc rối”. Cùng học xem làm như thế nào để phân quyền một cách thích hợp, kể cả trong những trường hợp đặc biệt Phân quyền trên Linux là một vấn đề mà bất cứ người dùng nào...

Mục lục

Phương thức Symbolic
Phương thức Numeric
Giải thích các quyền đặc biệt

user + s (pecial)
group + s (pecial)
other + t (sticky)

Gán các quyền hạn đặc biệt

Phương thức Symbolic

Phương thức Symbolic sử dụng cú pháp như sau

[cloudzone@server ~]$ chmod WhoWhatWhich file | directory

Trong đó

  • Who: Tham số về định danh. Có 1 trong 4 giá trị u, g, o, a (user, group, other, all)
  • What: Tham số về hành động. Có 1 trong 3 giá trị +, -, = (add, remove, set exact)
  • Which: Tham số về quyền hạn. Có 1 trong 3 giá trị r, w, x (read, write, execute)

An example of this is if I want to add the read and write permissions to a file named test.txt for user and group, I use the following command:
Một ví dụ là nếu tôi muốn thêm quyền read và write vào một files tên là test.txt cho user và group. Tôi sẽ sử dụng câu lệnh sau

[cloudzone@server ~]$ chmod ug+rw test.txt
Phương thức Numeric

Phương thức Numeric, theo kinh nghiệm cá nhân của tôi, đây là cách tốt nhất để học và luyện tập về phân quyền. Nó dựa trên cú pháp sau

[cloudzone@server ~]$ chmod ### file | directory

Ở đây, từ trái sang phải, kí tự # nói về một level truy cập. Có 3 level: user, group, and others. Và giá trị của mỗi level được đặt như sau

  • Bắt đầu bằng 0
  • Nếu có quyền read: Cộng thêm 4
  • Nếu có quyền write: Cộng thêm 2
  • Nếu có quyền Execute: Cộng thêm 1

Ví dụ quyền hạn sau

-rw-r-x---

Sẽ được chuyển thành 650. Giải thích như sau

  • Quyền hạn của user là rw- hay 4+2=6
  • Quyền hạn của group là r-x hay 4+1=5
  • Quyền hạn của others là — hay 0

Đưa vào cú pháp sẽ là như sau

[cloudzone@server ~]$ chmod 650 test.txt
Giải thích các quyền đặc biệt

Quyền hạn đặc biệt tạo ra level truy cập thứ 4 bên cạnh user, group và other. Quyền hạn đặc biệt cho phép thêm một đặc quyền vượt lên những quyền hạn thông thường. Mỗi level có một quyền hạn đặc biệt riêng cho nó. Hãy phân tích từng trường hợp

user + s (pecial)

Còn được nói tới là SUID, một quyền đặc biệt cho user access level có một chắc năng duy nhất. Một file với SUID luôn được thực thi với user sở hữu files đó, không quan tâm tới user nào đang thực thi câu lệnh. Nếu chủ sở hữu file không có quyền execute, bạn có thể dùng một chữ S in hoa ở đây
Để thấy rõ hơn vấn đề này, hãy nhìn vào câu lệnh /usr/bin/passwd. Câu lệnh này, mặc định có quyền SUID được gán

[cloudzone@server ~]$ ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 33544 Dec 13 2019 /usr/bin/passwd

group + s (pecial)

Còn được biét tới là SGID, quyền hạn đặc biệt này có một số chức năng như sau

  • Nếu được đặt trên một files, nó cho phép files ày được thực thi như group sở hữu files đó (Tương tự SUID)
  • Nếu được đặt trên một thư mục, bất cứ files nào tạo trong thư mục đó sẽ được cấp quyền cho group sở hữu
[cloudzone@server article_submissions]$ ls -l total 0 drwxrws---. 2 cloudzone cloudzone 69 Apr 7 11:31 my_articles

Điều này khá hữu ích cho thư mục được chia sẻ để làm việc chung giữa các thành viên của group. Bất cứ member nào trong group có thể truy cập vào bất cứ file mới nào tạo ra. Điều này cũng tương tự cho quyền thực thi các files này. SGID thực sự rất mạnh khi được sử dụng đúng cách
Lưu ý nếu group sở hữu không có quyền thực thi, thì chúng ta sẽ dùng chữ S in hoa ở đây

other + t (sticky)

Quyền hạn đặc biệt cuối cùng có thể hơi rối một chút. Quyền hạn này không ảnh hưởng tới các files riêng lẻ. Nhưng ở cấp độ thư mục, nó ngăn chặn việc xoá files. Chỉ có người sở hữu (và root) của file này có thể xoá file/và thư mục. Một ví dụ ở thư mục /tmp

[tcarrigan@server article_submissions]$ ls -ld /tmp/ drwxrwxrwt. 15 root root 4096 Sep 22 15:28 /tmp/

Quyền hạn này được ghi lại với chữ t

Gán các quyền hạn đặc biệt

Để gán các quyền hạn đặc biệt, bạn có thể dùng 1 trong 2 phương thức phân quyền được nói ở trên. Symbolic hay numerical
Hãy thử gán SGID cho thư mục community_content
Để sử dụng phương thức symbolic, bạn có thể làm như sau

[cloudzone@server article_submissions]$ chmod g+s community_content/

Nếu dùng phương thức numerical bạn sẽ thêm chữ số thứ 4 vào dãy số ở trên câu lệnh chmod.

  • Bắt đầu bằng 0
  • SUID=4
  • SGID=2
  • Sticky=1

Cú pháp là

[cloudzone@server ~]$ chmod X### file | directory

Trong X là chữ số thứ 4 được nhắc tới ở trên
Đây là câu lệnh để gán SGID vào thư mục community_content sử dụng phương thức numerical

[cloudzone@server article_submissions]$ chmod 2770 community_content/ [cloudzone@server article_submissions]$ ls -ld community_content/ drwxrws---. 2 cloudzone cloudzone 113 Apr 7 11:32 community_content/
Chia sẻ

Bài viết liên quan

Tối ưu chi phí hạ tầng: chọn đúng cấu hình, thuê theo nhu cầu

Tối ưu chi phí hạ tầng: chọn đúng cấu hình, thuê theo nhu cầu

Cách giảm chi phí hạ tầng hợp lý: chọn đúng cấu hình (right-sizing), thuê theo nhu cầu, kết hợp dịch vụ và rà soát tài nguyên định kỳ mà không ảnh hưởng vận hành

Cách săn khuyến mãi VPS/máy chủ, tránh bẫy giá rẻ

Cách săn khuyến mãi VPS/máy chủ, tránh bẫy giá rẻ

Cách tận dụng khuyến mãi VPS và máy chủ hợp lý, đọc kỹ điều kiện gia hạn và nhận biết bẫy giá rẻ ảnh hưởng chất lượng dịch vụ

Chọn nhà cung cấp VPS/máy chủ: tiêu chí cần kiểm tra

Chọn nhà cung cấp VPS/máy chủ: tiêu chí cần kiểm tra

Các tiêu chí chọn nhà cung cấp VPS và máy chủ: uptime/SLA, hạ tầng data center, peering, hỗ trợ kỹ thuật và chính sách hoàn tiền, kèm cách đọc cam kết dịch vụ

Phần mềm mã nguồn mở thay thế để tiết kiệm bản quyền

Phần mềm mã nguồn mở thay thế để tiết kiệm bản quyền

Gợi ý các phần mềm mã nguồn mở thay thế giải pháp có phí cho máy chủ: hệ điều hành, cơ sở dữ liệu, web server, control panel và ảo hóa, kèm lưu ý chi phí vận hành

So sánh bản quyền control panel: cPanel, DirectAdmin, Plesk

So sánh bản quyền control panel: cPanel, DirectAdmin, Plesk

So sánh cPanel, DirectAdmin và Plesk về tính năng, hệ điều hành hỗ trợ và chi phí bản quyền, kèm gợi ý chọn control panel theo số website và nhu cầu

Các loại bản quyền Windows Server và cách chọn cho đúng

Các loại bản quyền Windows Server và cách chọn cho đúng

Hiểu cấp phép Windows Server theo core, CAL và các kênh OEM/Volume/CSP, phân biệt Standard và Datacenter để chọn bản quyền phù hợp và hợp lệ