Cách xem quyền read write execute trong linux
Show Lời mở đầuTrong bài viết Cơ bản về phân quyền cho file trong Linux (phần 1) mình đã giới thiệu sơ qua về phân quyền cũng như cách xem chi tiết phân quyền của một file bất kỳ trong hệ thống Linux. Ở bài viết này mình sẽ tiếp tục nói về các phương pháp phân quyền và một vài lưu ý phân quyền hiệu quả. Nhắc lại một chút về phân quyềnTrong phần 1, mình đã nói phân quyền bao gồm 3 nhóm: Owner (chủ sở hữu), Group (nhóm sở hữu), Other (người dùng và nhóm khác) và 3 loại: Read (quyền đọc), Write (quyền ghi), Execute (quyền thực thi). Mỗi nhóm và loại phân quyền này đều có tác dụng riêng, không phụ thuộc lẫn nhau nhưng có thể phối hợp với nhau để giúp cho việc quản lý hệ thống trở nên dễ dàng. Người dùng khi sở hữu một file thì mới có khả năng phân quyền cho file đó, những người dùng khác và nhóm kể cả có quyền read, write lẫn execute thì vẫn không được phép thay đổi quyền của file. Ngoại lệ duy nhất là siêu người dùng root, cho dù là bất cứ file nào thì root cũng có thể phân quyền được, không quan trọng ai là người sở hữu. Để tiện cho việc theo dõi, mình sẽ trình bày song song các phương pháp phân quyền cũng như các lưu ý. Sau đây mình xin trình bày. Quyền hạn mặc địnhDo Linux được tạo ra nhằm mục đích cho nhiều người sử dụng nên cũng sẽ có các thiết lập mặc định dành cho người dùng bình thường, những người mà không quan tâm hoặc ít quan tâm đến vấn đề cài đặt hoặc cấu hình. Không nằm ngoài quy luật này, với các file được tạo ra bởi người dùng thì luôn có những giá trị mặc định được thiết lập sẵn. Cụ thể trong bảng dưới đây:
Như vậy, khi tạo một file mới, quyền cao nhất luôn luôn thuộc về người tạo ra nó, bao gồm đọc, sửa, xóa ..., nhóm và người dùng khác chỉ có quyền xem. Với thư mục, mặc dù vẫn dùng chung các kí hiệu r, w, x như file thông thường nhưng quyền hạn thì có một chút khác biệt, cụ thể là:
Phân quyền sử dụng chmodNếu nói tới phân quyền trong Linux, không thể không nhắc tới
VD: chmod u+rw file_1, chmod g+x,o= file_2, chmod u=g,g=o file_3 .... và
VD: chmod 0755 file_4, chmod 4700 file_5 ... Cách thứ nhất dùng để phân quyền một cách rõ ràng cho từng nhóm phân quyền (owner, group, other hoặc all), còn cách thứ hai sẽ giúp người sử dụng thao tác nhanh hơn nếu đã làm quen với lệnh. Về cách thứ nhất, format chung của mode sẽ như sau: chmod [group_permisssion] [operator] [permisssion]. Bảng Group Permission
Bảng Operator
Bảng Permission
Cách thứ hai sẽ khó sử dụng hơn cách thứ nhất do dùng chữ số nhưng nếu quen rồi thì khi thao tác sẽ nhanh hơn rất nhiều. Cụ thể phân quyền bằng cách này sẽ sử dụng một dãy tối đa 4 chữ số để phân quyền. Chữ số nào bị thiếu thì mặc định sẽ coi như bằng 0. VD: 7 tương đương với 0007. Các giá trị cho phép sẽ là một số octal (hệ 8) trong khoảng từ 0 đến 7777. Bảng sau sẽ trình bày cụ thể các giá trị
Thông thường với một file văn bản, hình ảnh ... thì ta nên sử dụng mode rw-r--r-- hay 644, bất cứ ai cũng có thể đọc nhưng chỉ chủ sở hữu mới có quyền ghi. Tuy nhiên ta cũng có thể dùng mode rw-rw---- hay 660 vì có thể có một file nào đó cần chia sẻ với người dùng trong nhóm cụ thể nhưng lại không muốn người dùng ngoài nhóm được quyền xem nội dung hay chỉnh sửa file đó. Còn với những file cần giữ bí mật thì tốt hơn hết là để mode rw------- hay 600. Mode 600 nên sử dụng với những file như secret key của gpg hoặc ssh. Với thư mục hoặc file cần thực thi thì ta có thể cấp quyền thực thi, nhưng phải chú ý công năng của file và hạn chế cấp quyền cho Other hoặc thậm chí cả Group nếu không cần thiết. Phân quyền sử dụng chown và chgrpLệnh Lời kếtTrên đây chỉ là các cách cơ bản để phân quyền cho file trong Linux, tuy cơ bản nhưng cũng khá hiệu quả với người dùng bình thường hoặc người dùng không quan trọng lắm về phân quyền. Với hiểu biết có hạn nên bài viết này có thể còn sai sót hoặc chưa đầy đủ. Hy vọng mọi người có thể góp ý để mình hoàn thiện bài viết hơn. Xin cảm ơn mọi người đã đọc bài viết. References
|