Giới thiệu về quyền của Linux
Linux là một hệ điều hành đa user dựa trên khái niệm Unix về quyền sở hữu và quyền của tệp để cung cấp bảo mật ở phạm vi hệ thống file . Nếu bạn đang có kế hoạch cải thiện các kỹ năng Linux của bạn , điều cần thiết là bạn phải hiểu rõ về cách thức hoạt động của quyền sở hữu và quyền. Có nhiều điều phức tạp khi xử lý quyền sở hữu và quyền đối với file , nhưng ta sẽ cố gắng hết sức để chắt lọc các khái niệm xuống thành các chi tiết cần thiết để hiểu cơ bản về cách chúng hoạt động.Trong hướng dẫn này, ta sẽ trình bày cách xem và hiểu quyền sở hữu và quyền của Linux. Nếu bạn đang tìm kiếm hướng dẫn về cách sửa đổi quyền, hãy xem hướng dẫn này: Cơ bản về quyền của Linux và Cách sử dụng Umask trên VPS
Yêu cầu
Đảm bảo bạn hiểu các khái niệm được đề cập trong các hướng dẫn trước của loạt bài này:
Việc truy cập vào một server Linux không hoàn toàn cần thiết để làm theo hướng dẫn này, nhưng có một server để sử dụng sẽ cho phép bạn có được một số trải nghiệm đầu tiên. Nếu bạn muốn cài đặt , hãy xem liên kết này để được trợ giúp.
Về user
Như đã đề cập trong phần giới thiệu, Linux là một hệ thống nhiều user . Ta phải hiểu những điều cơ bản về user và group Linux trước khi có thể nói về quyền sở hữu và quyền, bởi vì họ là những thực thể mà quyền sở hữu và quyền áp dụng. Hãy bắt đầu với những điều cơ bản về user là gì.
Trong Linux, có hai loại user : user hệ thống và regular user . Theo truyền thống, user hệ thống được sử dụng để chạy các quy trình hoặc không tương tác trên một hệ thống, trong khi regular user được sử dụng để đăng nhập và chạy các quy 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 với nhiều user 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ả user trên hệ thống là xem nội dung của file /etc/passwd
. Mỗi dòng trong file này có chứa thông tin về một user duy nhất, bắt đầu với tên user của nó (tên trước khi là người đầu tiên :
). In passwd
file với lệnh này:
cat /etc/passwd
Superuser
Ngoài hai kiểu user , còn có người dùng cấp cao , hoặc user gốc , có khả năng overrides bất kỳ hạn chế quyền sở hữu và quyền đối với file . Trên thực tế, điều này nghĩa là superuser có quyền truy cập bất cứ thứ gì trên server của chính nó. User này được sử dụng để áp dụng các thay đổi trên toàn hệ thống và phải được bảo mật.
Cũng có thể cấu hình các account user khác với khả năng đảm nhận “quyền của user cấp cao”. Trên thực tế, việc tạo một user bình thường có quyền sudo
cho các việc quản trị hệ thống được coi là cách tốt nhất.
Về group
Group là tập hợp của không hoặc nhiều user . User thuộc một group mặc định và cũng có thể là thành viên của bất kỳ group nào khác trên server .
Một cách dễ dàng để xem tất cả các group và thành viên của họ là xem trong file /etc/group
trên server . Ta sẽ không đề cập đến quản lý group 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ề các group của bạn :
cat /etc/group
Đến đây bạn đã biết user và group là gì, hãy nói về quyền sở hữu và quyền đối với file !
Xem quyền sở hữu và quyền
Trong Linux, mỗi và mọi file được sở hữu bởi một user và một group duy nhất và có các quyền truy cập riêng. Hãy xem cách xem quyền sở hữu và quyền của một file .
Cách phổ biến nhất để xem các quyền của file là sử dụng ls
với tùy chọn liệt kê dài, ví dụ: ls -l myfile
. Nếu bạn muốn xem quyền của tất cả các file trong folder hiện tại của bạn , hãy chạy lệnh mà không có đối số, như sau:
ls -l
Gợi ý: Nếu bạn đang ở trong một folder chính trống và bạn chưa tạo các file nào để xem, bạn có thể theo dõi bằng cách liệt kê nội dung của folder /etc
bằng cách chạy lệnh này: ls -l /etc
Dưới đây là một ví dụ về ảnh chụp màn hình kết quả có thể trông như thế nào, với các nhãn của mỗi cột kết quả :
Lưu ý chế độ của mỗi file (chứa quyền), chủ sở hữu, group và tên được liệt kê. Ngoài cột Chế độ , danh sách này khá dễ hiểu. Để giúp giải thích ý nghĩa của tất cả các chữ cái và dấu gạch nối đó, hãy chia cột Chế độ thành các thành phần của nó.
Chế độ hiểu
Để giúp giải thích ý nghĩa của tất cả các group và chữ cái, hãy xem ảnh minh họa chế độ của file đầu tiên trong ví dụ trên:
Loại file
Trong Linux, có hai loại file cơ bản: bình thường và đặc biệt . Loại file được biểu thị bằng ký tự đầu tiên của chế độ file – trong hướng dẫn này, ta gọi đây là trường loại file .
Các file bình thường có thể được xác định bằng các file có dấu gạch ngang ( -
) trong các trường loại file của chúng. Các file bình thường chỉ là các file đơn giản có thể chứa dữ liệu. Chúng được gọi là file bình thường hoặc thông thường để phân biệt với các file đặc biệt.
Các file đặc biệt có thể được xác định bằng các file có ký tự không phải dấu gạch nối, chẳng hạn như chữ cái, trong các trường loại file của chúng và được hệ điều hành xử lý khác với các file bình thường. Ký tự xuất hiện trong trường loại file cho biết loại file đặc biệt mà một file cụ thể là. Ví dụ: một folder , là loại file đặc biệt phổ biến nhất, được xác định bằng ký tự d
xuất hiện trong trường loại file của nó (như trong ảnh chụp màn hình trước). Có một số loại file đặc biệt khác nhưng chúng không phải là thứ thiết yếu mà ta đang tìm hiểu ở đây.
Các lớp quyền
Từ sơ đồ, ta biết rằng cột Chế độ cho biết loại file , theo sau là ba bộ ba hoặc các lớp, quyền: user (chủ sở hữu), group và khác. Thứ tự của các lớp là nhất quán trên tất cả các bản phân phối Linux.
Hãy xem những user nào thuộc về mỗi lớp quyền:
- User : Chủ sở hữu của file thuộc lớp này
- Group : Các thành viên của group của file thuộc lớp này
- Khác : Mọi user không thuộc lớp user hoặc group đều thuộc lớp này.
Đọc quyền tượng trưng
Điều tiếp theo cần chú ý là các bộ ba ký tự, hoặc bộ ba, vì chúng biểu thị các quyền, ở dạng ký hiệu, mà mỗi lớp có cho một file nhất định.
Trong mỗi bộ ba, quyền đọc, ghi và thực thi được biểu diễn theo cách sau:
- Đọc : Được biểu thị bằng chữ
r
ở vị trí đầu tiên - Viết : Được biểu thị bằng chữ
w
ở vị trí thứ hai - Execute : Được biểu thị bằng dấu
x
ở vị trí thứ ba. Trong một số trường hợp đặc biệt, có thể có một ký tự khác ở đây
Dấu gạch ngang ( -
) ở vị trí của một trong các ký tự này cho biết rằng quyền tương ứng không khả dụng cho lớp tương ứng.Ví dụ: nếu bộ ba group của một file là r--
, thì file đó là "chỉ đọc" đối với group được liên kết với file .
Hiểu Đọc, Viết, Thực thi
Đến đây bạn đã biết cách đọc quyền nào của file , có thể bạn muốn biết mỗi quyền thực sự cho phép user làm gì. Ta sẽ giải thích từng quyền riêng lẻ, 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 có ý nghĩa vào file và folder .
Dưới đây là phân tích nhanh về quyền truy cập mà ba loại quyền cơ bản cấp cho user .
Đọc
Đối với một file thông thường, quyền đọc cho phép user xem nội dung của file .
Đối với một folder , quyền đọc cho phép user xem tên của file trong folder .
Viết
Đối với một file thông thường, quyền ghi cho phép user sửa đổi và xóa file .
Đối với folder , quyền ghi cho phép user xóa folder , sửa đổi nội dung của folder (tạo, xóa và đổi tên file trong đó) và sửa đổi nội dung của file mà user có thể đọc.
Hành hình
Đối với một file thông thường, quyền thực thi cho phép user thực thi một file ( user cũng phải có quyền đọc). Như vậy, quyền thực thi phải được đặt cho các chương trình thực thi và các tập lệnh shell trước khi user có thể chạy chúng.
Đối với một folder , quyền thực thi cho phép user truy cập hoặc đi ngang vào (tức là cd
) và truy cập metadata về các file trong folder (thông tin được liệt kê trong ls -l
).
Ví dụ về Chế độ (và Quyền)
Đến đây bạn đã biết cách đọc chế độ của file và hiểu ý nghĩa của từng quyền, ta sẽ trình bày một vài ví dụ về các chế độ phổ biến, kèm theo giải thích ngắn gọn, để kết hợp các khái niệm với nhau.
-
-rw-------
: Một file mà chỉ chủ nhân của nó mới có thể truy cập được -
-rwxr-xr-x
: Một file được mọi user trên hệ thống thực thi. Tệp "thực thi được trên toàn thế giới" -
-rw-rw-rw-
: Một file được mọi user trên hệ thống mở để sửa đổi. Tệp "có thể ghi trên thế giới" -
drwxr-xr-x
: Thư mục mà mọi user trên hệ thống đều có thể đọc và truy cập -
drwxrwx---
: Một folder có thể sửa đổi (bao gồm cả nội dung của nó) bởi chủ sở hữu và group của nó -
drwxr-x---
: Một folder mà group của nó có thể truy cập được
Như bạn có thể nhận thấy, chủ sở hữu của file thường được hưởng nhiều quyền nhất, khi so sánh với hai lớp còn lại. Thông thường, bạn sẽ thấy rằng group và các lớp khác chỉ có một tập hợp con 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 vì các file chỉ có thể truy cập được đối với những user cần quyền truy cập vào chúng vì một lý do cụ thể.
Một điều cần lưu ý nữa là mặc dù có thể có nhiều kết hợp quyền, nhưng chỉ một số quyền nhất định mới có ý nghĩa trong hầu hết các tình huống. Ví dụ: quyền truy cập ghi hoặc thực thi hầu như luôn đi kèm với quyền truy cập đọc , vì rất khó sửa đổi và không thể thực thi, điều mà bạn không thể đọc.
Sửa đổi quyền sở hữu và quyền
Để giữ cho hướng dẫn này đơn giản, ta sẽ không trình bày cách sửa đổi quyền và quyền sở hữu file ở đây.Để tìm hiểu cách sử dụng chown
, chgrp
và chmod
để thực hiện các việc này, hãy tham khảo hướng dẫn này: Cơ bản về quyền của Linux và Cách sử dụng Umask trên VPS .
Kết luận
Đến đây bạn đã hiểu rõ về cách thức hoạt động của quyền sở hữu và quyền trong Linux. Nếu bạn muốn tìm hiểu thêm về những kiến thức cơ bản về Linux, bạn nên đọc hướng dẫn tiếp theo trong loạt bài này:
Các tin liên quan
Quản lý tệp và điều hướng Linux cơ bản2014-11-14
Giới thiệu về Linux Terminal
2014-11-14
Quản lý tệp và điều hướng Linux cơ bản
2014-11-14
Quản lý tệp và điều hướng Linux cơ bản
2014-11-14
Cách tạo server để gửi thông báo đẩy bằng GCM tới thiết bị Android bằng Python
2014-11-11
Cách cài đặt và cấu hình server Mumble (Murmur) trên Ubuntu 14.04
2014-11-11
Cách chạy server trò chuyện UnrealIRCd trên Debian 7
2014-10-22
Cách cấu hình xác thực dựa trên khóa SSH trên server Linux
2014-10-20
Cách bảo vệ server của bạn trước lỗ hổng POODLE SSLv3
2014-10-15
Cách sử dụng cấu hình cloud để thiết lập server ban đầu của bạn
2014-10-13