#

Tìm hiểu về quyền SUID, SGID và sticky bit trong Linux

Ngay từ khi bắt đầu sử dụng Linux thì rắc rối về phân quyền là vấn đề mà ai cũng từng gặp. Để quản lý hệ thống một cách hiệu quả cần thực thi các script, sửa đổi files và chạy các quy trình. Tuy nhiên đôi khi bạn thấy thông báo “Permission denied”.

Để biết nguyên nhân cũng như các biện pháp khắc phục, bài viết hôm nay BKHOST sẽ cùng các bạn tìm hiểu về các cách tính toán quyền khác nhau cũng như các quyền đặc biệt trong Linux.

Quyen SUID, SGID va sticky bit trong Linux

Đăng ký tên miền .COM giá siêu rẻ

BKHOST đang có chương trình khuyến mãi cực shock dành cho khách hàng đăng ký mới tên miền .COM:

  • Giá gốc 340k.
  • Giảm giá chỉ còn 265k/năm đầu.

Đừng để đối thủ lấy mất thương hiệu của bạn trên internet. Đăng ký ngay hôm nay:

tên miền .com

Phương thức Symbolic

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

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

Trong đó:

  • Who: Đại diện cho danh tính: u,g,o,a (user, group, other, all).
  • What: Đại diện cho các hành động: +, -, = (thêm, xóa, đặt chính xác).
  • Which – đại diện cho các cấp độ truy cập: r, w, x (đọc, viết, thực thi).

Ví dụ: Nếu chúng ta muốn thêm quyền đọc và ghi vào file có tên test.txt cho user và group, chúng ta sử dụng lệnh sau:

[tcarrigan@server ~]$ chmod ug+rw test.txt

Phương thức Numeric

Để tìm hiểu và thực hành các quyền thì phương thức Numeric là một cách hiệu quả. Phương thức Numeric sử dụng cú pháp sau:

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

Ở đây, từ trái sang phải, ký tự # đại diện cho cấp truy cập. Có ba mức truy cập—user, group, và other. Để xác định mỗi chữ số là gì, chúng tôi sử dụng như sau:

  • Bắt đầu từ 0.
  • Nếu quyền đọc phải được đặt, hãy thêm 4.
  • Nếu quyền ghi phải được đặt, hãy thêm 2.
  • Nếu quyền thực thi phải được đặt, hãy thêm 1.

Điều này được tính trên cơ sở mỗi cấp độ truy cập. Chúng ta cùng giải thích ví dụ về quyền này:

-rw-r-x---

Các quyền được thể hiện dưới dạng 650 giải thích như sau:

  • Quyền của người dùng là: rw- hoặc 4+2= 6.
  • Quyền của nhóm là: rx hoặc 4+1= 5.
  • Quyền của những người khác là: hoặc 0.

Đưa điều này vào cú pháp có lệnh sau:

[tcarrigan@server ~]$ chmod 650 test.txt

Bây giờ bạn đã hiểu những kiến ​​thức cơ bản về tính toán quyền trong Linux, hãy xem xét các quyền đặc biệt có trong HĐH.

Giải thích về quyền đặc biệt

Ngoài user, group, và other thì các quyền đặc biệt tạo thành mức truy cập thứ tư. Các quyền đặc biệt cho phép các đặc quyền bổ sung đối với các bộ quyền tiêu chuẩn (như tên gợi ý). Mỗi cấp độ có một tùy chọn quyền đặc biệt.

use + s (đặc biệt)

Thường được ghi chú là SUID, quyền đặc biệt dành cho cấp độ truy cập của người dùng có một chức năng duy nhất: File có SUID luôn thực thi với tư cách là người dùng sở hữu file, bất kể người dùng có truyền lệnh hay không. Nếu chủ sở hữu tệp không có quyền thực thi, thì hãy sử dụng chữ hoa S ở đây.

Ví dụ: /usr/bin/passwd

Theo mặc định, lệnh này có quyền SUID được đặt:

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

Lưu ý: x thường chỉ ra quyền thực thi cho người dùng.

group + s (đặc biệt)

Thường được ghi chú là SGID, quyền đặc biệt này có một vài chức năng:

  • Nếu được đặt trên một tệp, SGID cho phép tệp được thực thi với tư cách là nhóm sở hữu tệp (tương tự như SUID).
  • Nếu được đặt trên một thư mục, bất kỳ tệp nào được tạo trong thư mục sẽ có quyền sở hữu nhóm của chúng được đặt thành quyền sở hữu của chủ sở hữu thư mục.

[tcarrigan@server article_submissions]$ ls -l
total 0
drwxrws---. 2 tcarrigan tcarrigan 69 Apr 7 11:31 my_articles

Bộ quyền này được ghi chú bằng chữ thường s trong đó x thường biểu thị các đặc quyền thực thi cho nhóm. Nó cũng đặc biệt hữu ích cho các thư mục thường được sử dụng trong các nỗ lực hợp tác giữa các thành viên của một nhóm. Dù cho thành viên nào của nhóm cũng đều có thể truy cập bất kỳ file mới nào. Điều này cũng áp dụng cho việc thực thi các file. SGID rất mạnh khi được sử dụng đúng cách.

Như đã lưu ý trước đây cho SUID, nếu nhóm sở hữu không có quyền thực thi, thì chữ hoa S sẽ được sử dụng.

other + t (sticky)

Quyền đặc biệt cuối cùng là “sticky bit”. Tuy không ảnh hưởng đến các tệp riêng lẻ nhưng quyền này ở cấp độ thư mục, nó hạn chế xóa tệp. Chỉ chủ sở hữu (và root) của tệp mới có thể xóa tệp trong thư mục đó. Một ví dụ phổ biến về điều này là thư mục /tmp:

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

Tập hợp quyền được ghi chú bằng chữ thường t, trong đó x thường biểu thị đặc quyền thực thi.

Đặt quyền đặc biệt

Chúng ta có thể sử dụng một trong hai phương thức ký hiệu hoặc số để đặt các quyền đặc biệt trên một tệp hoặc thư mục:

Giả sử chúng ta muốn đặt SGID trên thư mục community_content.

Bằng Phương thức Symbolic, ​​​​chúng ta làm điều như sau:

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

Bằng phương thức Numberic, chúng ta cần chuyển chữ số thứ tư, đứng trước trong chmod lệnh của mình. Chữ số được sử dụng được tính tương tự như chữ số cho phép tiêu chuẩn:

  • Bắt đầu từ 0.
  • SUID = 4.
  • SGID = 2.
  • Dính = 1.

Cú pháp sẽ là:

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

Trong đó X là chữ số quyền đặc biệt.

Đây là lệnh để đặt SGID bằng community_content phương thức Numberic:

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

Tổng kết

Để trở thành một quản trị viên Linux hiệu quả thì việc hiểu các quyền về cơ bản rất quan trọng. Bài viết trên đây BKHOST hy vọng đã giúp các bạn hiểu rõ về quyền và các khái niệm cơ bản cũng như có thể giải quyết lỗi Permission reject gây cản trở công việc của bạn.

Nếu còn gặp bất cứ vướng mắc gì, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Dịch vụ Cloud VPS Giá Rẻ chất lượng cao

BKHOST đang có chương trình khuyến mãi cực shock dành cho khách hàng đăng ký Cloud VPS Giá Rẻ:

  • Giảm giá lên đến 25%.
  • Giá chỉ từ 87k/tháng.
  • Tặng thêm 512MB Ram.

Đăng ký ngay:

vps ssd giá rẻ

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger