Giới thiệu về phân quyền trong Linux

Linux là một hệ điều hành đa người dùng đó là dựa trên các khái niệm Unix quyền sở hữu tập tin và quyền hạn để cung cấp an ninh, ở cấp hệ thống tập tin. Nếu bạn đang có kế hoạch nâng cao kỹ năng Linux của bạn, điều quan trọng là có một sự hiểu biết phong nha của cách sở hữu và quyền làm việc. Có rất nhiều vấn đề phức tạp khi đối phó với quyền sở hữu tập tin và các quyền, nhưng chúng tôi sẽ cố gắng tốt nhất của chúng tôi để chắt lọc những khái niệm xuống đến những chi tiết cần thiết cho một sự hiểu biết cơ bản về cách thức họ làm việc.

Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách nhìn nhận và hiểu sở hữu Linux và cho phép. Nếu bạn đang tìm kiếm một hướng dẫn về làm thế nào để sửa đổi cho phép, hãy kiểm tra hướng dẫn này: Linux Quyền Khái niệm cơ bản và cách sử dụng Umask trên VPS
Điều kiện tiên quyết

Hãy chắc chắn rằng bạn hiểu những khái niệm được đề cập trong các bài hướng dẫn trước trong loạt bài này:

Giới thiệu về Linux Terminal
Basic Linux Navigation và quản lý tập tin

Truy cập vào một máy chủ Linux không phải là thực sự cần thiết để làm theo hướng dẫn này, nhưng có một người sử dụng sẽ cho phép bạn có được một số kinh nghiệm đầu tay. Nếu bạn muốn thiết lập một lên, kiểm tra liên kết này để được giúp đỡ.
Về Users

Như đã đề cập trong phần giới thiệu, Linux là một hệ thống đa người dùng. Chúng ta phải hiểu những điều cơ bản của người sử dụng Linux và các nhóm trước khi chúng ta có thể nói về quyền sở hữu và các quyền, bởi vì họ là những thực thể có quyền sở hữu và quyền nộp đơn. Hãy bắt đầu với những điều cơ bản về những gì người dùng.

Trong Linux, có hai loại người: người dùng hệ thống và người dùng thông thường. Theo truyền thống, người dùng hệ thống được sử dụng để chạy các quy trình không tương tác hay nền trên một hệ thống, trong khi người dùng thường xuyên sử dụng để đăng nhập và chạy các quá trình tương tác. Khi bạn lần đầu tiên đăng nhập vào một hệ thống Linux, bạn có thể nhận thấy rằng nó bắt đầu ra với nhiều người sử dụng hệ thống chạy các dịch vụ mà hệ điều hành phụ thuộc vào – điều này là hoàn toàn bình thường.

Một cách dễ dàng để xem tất cả các người sử dụng trên một hệ thống là để xem nội dung của file / etc / passwd. Mỗi dòng trong tập tin này có chứa thông tin về một người dùng duy nhất, bắt đầu với tên người dùng của nó (tên trước 🙂 đầu tiên. In tập tin passwd với lệnh này:

cat / etc / passwd

Superuser

Ngoài hai loại người dùng, có superuser, hoặc người sử dụng gốc, mà còn có khả năng ghi đè lên bất kỳ quyền sở hữu tập tin và cho phép hạn chế. Trong thực tế, điều này có nghĩa là superuser có quyền truy cập vào bất cứ điều gì trên máy chủ riêng của mình. Người dùng này được sử dụng để làm cho toàn hệ thống thay đổi, và phải đảm bảo an toàn.

Nó cũng có thể cấu hình tài khoản người dùng khác có khả năng giả định “quyền superuser”. Trong thực tế, việc tạo ra một người dùng bình thường có đặc quyền sudo cho các nhiệm vụ quản trị hệ thống được coi là thực hành tốt nhất.
Về Groups

Nhóm là tập hợp của zero hay người sử dụng. Một người sử dụng thuộc về một nhóm mặc định, và cũng có thể là một thành viên của bất kỳ nhóm nào khác trên một máy chủ.

Một cách dễ dàng để xem tất cả các nhóm và các thành viên của họ là để tìm trong các file / etc / nhóm trên một máy chủ. Chúng tôi sẽ không bao gồm quản lý nhóm trong bài viết này, nhưng bạn có thể chạy lệnh này nếu bạn tò mò về nhóm của bạn:

cat / etc / group

Bây giờ bạn biết những gì người dùng và các nhóm đang có, chúng ta hãy nói về quyền sở hữu tập tin và cho phép!

Xem chủ và Quyền

Trong Linux, mỗi và mọi tập tin được sở hữu bởi một người dùng duy nhất và một nhóm duy nhất, và có quyền truy cập riêng của mình. Hãy xem làm thế nào để xem các quyền sở hữu và quyền của một tập tin.

Cách phổ biến nhất để xem các quyền của một file là sử dụng ls với tùy chọn danh sách dài, ví dụ: ls -l myfile. Nếu bạn muốn để xem các quyền của tất cả các file trong thư mục hiện tại của bạn, chạy các lệnh mà không cần một đối số, như thế này:

ls -l

Gợi ý: Nếu bạn đang ở trong một thư mục nhà trống rỗng, và bạn không tạo ra bất kỳ tập tin để xem nào, bạn có thể làm theo cùng bằng cách liệt kê nội dung của thư mục / etc bằng cách chạy lệnh này: ls -l / etc

Dưới đây là một ảnh chụp màn hình ví dụ về những gì đầu ra có thể trông như thế nào, với các nhãn của từng cột trong đầu ra:

ls -l

Lưu ý rằng chế độ của mỗi tập tin (trong đó có quyền truy cập), chủ sở hữu, nhóm, và tên được liệt kê. Ngoài cột Mode, danh sách này là khá dễ hiểu. Để giúp giải thích tất cả những gì của những chữ cái và dấu gạch nối có nghĩa là, chúng ta hãy phá vỡ các cột Mode vào thành phần của nó.
Chế độ hiểu biết

Để giúp giải thích tất cả những gì các nhóm và chữ nghĩa, hãy xem closeup này của chế độ của các tập tin đầu tiên trong ví dụ trên:

Chế độ và quyền cố
File Type

Trong Linux, có hai loại cơ bản của tập tin: bình thường và đặc biệt. Các loại tập tin được chỉ định bởi các ký tự đầu tiên của chế độ của một tập tin – trong hướng dẫn này, chúng tôi đề cập đến điều này như trường loại tập tin.

Tập tin bình thường có thể được xác định bởi các tập tin với một dấu gạch ngang (-) trong các lĩnh vực loại tập tin của họ. Tập tin bình thường là các tập tin chỉ đơn giản có thể chứa dữ liệu. Họ được gọi là bình thường, hoặc thông thường, các tập tin để phân biệt với các tập tin đặc biệt.

Tập tin đặc biệt có thể được xác định bởi các tập tin có một nhân vật không dấu nối, chẳng hạn như một lá thư, trong các lĩnh vực loại tập tin của họ, và được xử lý bởi các hệ điều hành khác với tập tin bình thường. Các nhân vật xuất hiện trong các lĩnh vực loại tập tin cho biết các loại tập tin đặc biệt một tập tin cụ thể là. Ví dụ, một thư mục, đó là loại phổ biến nhất của tập tin đặc biệt, được xác định bởi các nhân vật d xuất hiện trong lĩnh vực loại tập tin của nó (như trong ảnh chụp màn hình trước đó). Có một số loại khác của tập tin đặc biệt mà họ không cần thiết những gì chúng tôi đang học ở đây.
Quyền Lớp học

Từ sơ đồ, chúng ta biết rằng chế độ cột cho thấy các loại tập tin, tiếp theo là ba Tam hoàng, hoặc các lớp học, các điều khoản: người sử dụng (chủ sở hữu), nhóm, và khác. Thứ tự của các lớp học phù hợp trên tất cả các bản phân phối Linux.

Hãy nhìn vào những người dùng thuộc về mỗi lớp điều khoản:

User: Chủ sở hữu của một tập tin thuộc nhóm này
Nhóm: Các thành viên trong nhóm của tập tin thuộc nhóm này
Khác: Bất kỳ người sử dụng mà không phải là một phần của người sử dụng hoặc nhóm lớp thuộc lớp này.

Đọc Permissions Symbolic

Điều tiếp theo cần chú ý đến là bộ ba nhân vật, hay hội Tam hoàng, khi họ biểu thị các điều khoản, trong hình thức tượng trưng, ​​mà mỗi lớp có một tập tin nhất định.

Trong mỗi bộ ba, đọc, viết, và thực hiện các điều khoản được đại diện trong các cách sau:

Đọc: Được chỉ định bởi một r ở vị trí đầu tiên
Viết: Được chỉ định bởi một w ở vị trí thứ hai
Thực hiện: Được chỉ định bởi một x ở vị trí thứ ba. Trong một số trường hợp đặc biệt, có thể có một nhân vật khác nhau ở đây

Một dấu gạch ngang (-) vào vị trí của một trong những nhân vật này chỉ ra rằng sự cho phép tương ứng là không có sẵn cho các lớp tương ứng. Ví dụ, nếu bộ ba nhóm cho một tập tin là r–, các tập tin là “chỉ đọc” vào nhóm đó là liên kết với các tập tin.
Hiểu Đọc, Viết, Execute

Bây giờ bạn biết làm thế nào để đọc các điều khoản nào của một tập tin, bạn có thể muốn biết những gì mỗi công quyền thực sự cho phép người sử dụng để làm. Chúng tôi sẽ giải thích từng cho phép cá nhân, nhưng hãy nhớ rằng chúng thường được sử dụng kết hợp với nhau để cho phép truy cập đầy ý nghĩa cho file và thư mục.

Dưới đây là một sự cố nhanh chóng của các truy cập mà ba loại cơ bản cấp phép một người sử dụng.
Đọc

Đối với một tập tin bình thường, cho phép đọc cho phép người dùng xem nội dung của file.

Đối với một thư mục, cho phép đọc cho phép người dùng xem các tên của các tập tin trong thư mục.
Viết

Đối với một tập tin bình thường, ghi phép cho phép người dùng chỉnh sửa và xóa các tập tin.

Đối với một thư mục, cho phép ghi cho phép người dùng xóa các thư mục, thay đổi nội dung của nó (tạo, xóa, đổi tên tập tin trong nó), và sửa đổi các nội dung của tập tin mà người dùng có thể đọc.
Thi hành

Đối với một tập tin bình thường, thực thi điều khoản cho phép người dùng thực thi một tập tin (người sử dụng cũng phải có quyền đọc). Như vậy, thực hiện các điều khoản phải được thiết lập cho chương trình thực thi và các kịch bản shell trước khi người dùng có thể chạy chúng.

Đối với một thư mục, thực thi điều khoản cho phép người dùng truy cập, hoặc đi qua, vào (tức là cd) và siêu dữ liệu truy cập về các tập tin trong thư mục (các thông tin được liệt kê trong một -l ls).
Ví dụ về các chế độ (và Quyền)

Bây giờ biết làm thế nào để đọc các chế độ của một tập tin, và hiểu ý nghĩa của từng sự cho phép, chúng tôi sẽ trình bày một vài ví dụ về các phương thức phổ biến, với lời giải thích ngắn gọn, để mang lại các khái niệm với nhau.

-rw ——-: Một tập tin là chỉ có thể truy cập bởi chủ nhân của nó
-rwxr-xr-x: Một tập tin có thể thực hiện được bởi mỗi người dùng trên hệ thống. Một tập tin “thế giới thực thi”
-rw-rw-rw-: Một file đang mở để sửa đổi bởi mỗi người dùng trên hệ thống. Một “thế giới có khả năng ghi-” file
drwxr-xr-x: Một thư mục mà mọi người dùng trên hệ thống có thể đọc và truy cập
drwxrwx —: Một thư mục đó là sửa đổi (bao gồm cả nội dung của nó) bởi chủ sở hữu và nhóm của mình
drwxr-x —: Một thư mục có thể truy cập theo nhóm của mình

Như bạn có thể nhận thấy, các chủ sở hữu của một tập tin thường thích nhất các điều khoản, khi so sánh với hai lớp khác. Thông thường, bạn sẽ thấy rằng các nhóm và các lớp khác chỉ có một tập hợp con của các quyền của chủ sở hữu (tương đương hoặc ít hơn). Điều này có ý nghĩa bởi vì các tập tin chỉ cần có thể truy cập đến những người dùng cần truy cập vào chúng vì một lý do đặc biệt.

Một điều cần lưu ý là mặc dù nhiều điều khoản kết hợp là có thể, chỉ có những người nào đó có ý nghĩa trong hầu hết các tình huống. Ví dụ, viết hoặc thực hiện truy cập được hầu như luôn luôn đi kèm với quyền đọc, vì thật khó để thay đổi, và không thể thực hiện, một cái gì đó bạn không thể đọc được.
Sửa đổi sở hữu và Quyền

Để giữ cho đơn giản hướng dẫn này, chúng ta sẽ không bao gồm làm thế nào để thay đổi quyền sở hữu tập tin và các điều khoản ở đây. Để tìm hiểu làm thế nào để sử dụng chown, chgrp, và chmod để thực hiện những nhiệm vụ này, hãy tham khảo hướng dẫn này: Linux Quyền Khái niệm cơ bản và cách sử dụng Umask trên VPS.