Hiểu quyền của Linux và cách sử dụng chmod

Tôi đã tham gia một khóa học về Linux trong vài tháng qua và một khía cạnh của Linux khiến tôi luôn bối rối là cách các quyền hoạt động. Ví dụ: khi tải một tệp lên máy chủ web của tôi một lần và gặp lỗi, máy chủ web yêu cầu tôi thay đổi quyền đối với tệp thành 755.

Tôi không biết điều đó có nghĩa là gì, mặc dù việc thay đổi quyền đã khắc phục được sự cố. Bây giờ tôi đã nhận ra rằng các quyền của Linux không phức tạp như vậy, bạn chỉ cần hiểu hệ thống. Trong bài viết này, tôi sẽ nói về các quyền của Linux ở cấp độ cao và hướng dẫn bạn cách sử dụng lệnh chmod để thay đổi quyền cho các tệp và thư mục.

Quyền và cấp độ Linux

Trong Linux , về cơ bản có ba quyền mà bạn thường phải lo lắng: đọc, ghi và thực thi. Cả ba điều này đều khá dễ hiểu. Bây giờ khi các quyền này được áp dụng cho một tệp, chúng sẽ được áp dụng theo các cấp.

Có ba cấp độ quyền trong Linux : chủ sở hữu, nhóm và khác. Chủ sở hữu là người dùng sở hữu tệp / thư mục, nhóm bao gồm những người dùng khác trong nhóm của tệp và người khác chỉ đại diện cho tất cả những người dùng khác không phải là chủ sở hữu hoặc trong nhóm.

Đọc(Read) , ghi và thực thi được biểu diễn dưới dạng ký tự tượng trưng hoặc số bát phân. Ví dụ: nếu bạn thực hiện lệnh ls -l trong thư mục có một số tệp, bạn sẽ thấy biểu diễn ký tự tượng trưng của các quyền.

Các quyền được viết như sau: bit đầu tiên là dấu gạch ngang hoặc chữ cái d. Dấu gạch ngang(Dash) có nghĩa là một tệp và d là viết tắt của thư mục. Lưu ý rằng bit đầu tiên cũng có thể là một l nếu tên tệp là một liên kết. Tiếp theo, có ba nhóm ba bit. Bit đầu tiên trong mỗi nhóm dùng để đọc, bit thứ hai dùng để ghi và bit thứ ba dùng để thực thi. Ba bit đầu tiên dành cho chủ sở hữu, ba bit thứ hai dành cho nhóm và ba bit thứ ba dành cho người khác. Đây là một lời giải thích trực quan hơn.

Nếu bạn thấy dấu gạch ngang ở vị trí của một chữ cái, điều đó có nghĩa là chủ sở hữu, nhóm hoặc tất cả người dùng khác không có quyền đó. Trong ví dụ trên, chủ sở hữu, nhóm và mọi người khác có quyền đọc ghi và thực thi.

Nếu bạn nhìn vào đầu ra từ lệnh ls -l, bạn sẽ nhận thấy rằng tệp văn bản thực hành của tôi có các quyền sau:

-rw-rw-rw-

Điều này có nghĩa là mọi người chỉ có quyền đọc / ghi đối với tệp. Đây là một ví dụ khác:

drwxr--r--

Nhìn vào bit đầu tiên, chúng ta có thể thấy rằng các quyền dành cho một thư mục. Chủ sở hữu có quyền đọc / ghi / thực thi, nhưng nhóm và những người dùng khác chỉ có quyền đọc.

Biểu diễn số bát phân

Vì vậy, đó là cách các quyền được hiển thị trong Linux bằng các ký hiệu. Cách thứ hai để biểu diễn các quyền giống nhau là sử dụng số bát phân. Khi chúng tôi sử dụng lệnh chmod sau này, bạn sẽ thấy rằng bạn có thể thay đổi quyền bằng cách sử dụng ký hiệu hoặc số bát phân.

Vậy Linux biểu diễn đọc, ghi và thực thi bằng cách sử dụng các số bát phân như thế nào? Về cơ bản, nó chỉ gán một số cho mỗi quyền như hình dưới đây.

Quyền đọc được đại diện bởi 4, ghi bởi 2 và thực thi bởi 1. Tất cả những gì bạn phải làm là cộng chúng lại để nhận được quyền bát phân. Ví dụ: hãy lấy ví dụ ở trên, nơi mọi người có tất cả các quyền:

-rwxrwxrwx

Chủ sở hữu có rwx, vì vậy chúng tôi sẽ thêm 4 + 2 + 1 để nhận giá trị là 7. Chúng tôi làm điều tương tự cho nhóm và điều tương tự cho nhóm khác. Giá trị bát phân cuối cùng là 777. Hãy xem ví dụ mà chúng tôi chỉ cấp quyền đọc / ghi:

-rw-rw-rw-

Số bát phân đầu tiên sẽ là 4 + 2 vì chúng ta đang thêm đọc và ghi. Số thứ hai sẽ giống với số bát phân thứ ba. Ở đây chúng ta có giá trị bát phân cuối cùng là 666.

Vì vậy, bây giờ chúng ta hãy thử nó theo cách khác. Giả sử chúng tôi muốn biết 755 đại diện cho quyền gì? Chà, khá dễ dàng để tìm ra nếu bạn chia nhỏ nó theo các số riêng lẻ. Số đầu tiên là 7, mà chúng ta chỉ có thể nhận được bằng cách thêm 4 + 2 + 1, nghĩa là chủ sở hữu có quyền đọc / ghi / thực thi. Chỉ có thể nhận được năm bằng cách thêm 4 + 1, nghĩa là nhóm và những người dùng khác có quyền đọc và thực thi.

Hy vọng(Hopefully) rằng đó là một lời giải thích tốt về cách biểu diễn các quyền trong Linux bằng cách sử dụng số bát phân. Nhìn chung, nó khá thẳng thắn.

Sử dụng chmod để sửa đổi quyền

Bây giờ chúng ta đã hiểu cách đọc quyền, hãy nói về cách chúng ta có thể thay đổi chúng. Tiện ích dễ sử dụng nhất cho mục đích này là lệnh chmod. Đây là cách nó hoạt động. Cách tốt nhất để giải thích lệnh là xem qua một ví dụ.

Hãy bắt đầu với các quyền mà chúng tôi đã nói ở trên, cụ thể là:

-rw-rw-rw-

Nếu chúng tôi muốn thêm quyền thực thi cho chủ sở hữu, nhóm và người khác, chúng tôi có thể thực hiện theo hai cách. Chúng ta có thể sử dụng phương pháp ký hiệu hoặc phương pháp bát phân. Đối với phương thức ký hiệu, chúng tôi sẽ làm như sau, như hình dưới đây:

Lệnh chính xác là

chmod a+x filename

Cú pháp như sau: ký tự hoặc các ký tự đại diện cho chủ sở hữu ( u ), nhóm ( g ), khác ( o ) hoặc tất cả ( a ) theo sau là dấu + để thêm quyền hoặc a - để lấy đi quyền và sau đó là ký tự cho quyền ( r để đọc, w để ghi và x để thực thi).

Trong ví dụ trên, tôi đã thêm quyền thực thi cho tất cả người dùng. Kết quả như bạn có thể thấy trong ảnh chụp màn hình ở trên là dấu x cho chủ sở hữu, nhóm và những người khác. Bây giờ, giả sử tôi muốn xóa quyền ghi và thực thi chỉ cho nhóm và những người dùng khác.

Như bạn có thể thấy ở đây, tôi đã sử dụng lệnh sau để thực hiện điều này:

chmod go-wx filename

Vì tôi muốn thay đổi quyền cho nhóm và nhóm khác, tôi sử dụng chữ g và chữ o . Tôi muốn xóa quyền, vì vậy tôi sử dụng dấu - . Cuối cùng, tôi muốn loại bỏ quyền ghi và thực thi, vì vậy tôi sử dụng wx . Đây là một bảng nhỏ tiện dụng để sử dụng biểu tượng:

Vì vậy, đó là tất cả những gì cần làm để sử dụng phương pháp ký hiệu. Bây giờ chúng ta hãy nói về phương thức bát phân, mà tôi thấy nó dễ dàng hơn một chút. Hệ bát phân(Octal) rất hay vì bạn có thể thêm hoặc xóa các quyền chỉ trong một lần.

Nếu chúng ta bắt đầu với các quyền sau trên một tệp, hãy xem cách chúng ta có thể thay đổi chúng bằng phương thức bát phân:

-rw-rw-rw-

Ở trên(Above) , bạn có thể thấy tôi đã sử dụng lệnh sau:

chmod 744 filename

Về cơ bản, điều này nói rằng chủ sở hữu được quyền đọc / ghi / thực thi và nhóm và những người khác chỉ được quyền đọc. Như bạn có thể thấy, thật dễ dàng để thêm hoặc xóa các quyền trong một lệnh đơn giản. Hãy tiếp tục và nói rằng tôi muốn thay đổi quyền một lần nữa.

Bây giờ tôi đã sử dụng lệnh sau, một lần nữa rất đơn giản:

chmod 640 filename

Ở đây, chúng tôi đã cấp cho chủ sở hữu quyền đọc / ghi, nhóm chỉ có quyền đọc và nhóm khác không có quyền. Bạn sử dụng số 0 để biểu thị không có quyền. Khá đơn giản phải không?

Tóm lại, đây là một tổng quan rất đơn giản về các quyền của Linux và nó có thể phức tạp hơn rất nhiều, nhưng đối với người mới bắt đầu, đây là một nơi tốt để bắt đầu. Tôi sẽ đăng nhiều bài viết hơn về các quyền nâng cao hơn trong tương lai. Nếu bạn có bất kỳ câu hỏi nào, hãy bình luận. Vui thích!



About the author

Tôi là kỹ sư phần mềm với hơn 10 năm kinh nghiệm thiết kế, xây dựng và bảo trì các ứng dụng dựa trên Windows. Tôi cũng là một chuyên gia thành thạo về xử lý văn bản, xử lý bảng tính và thuyết trình. Tôi có thể viết mô tả rõ ràng và ngắn gọn về mã, giải thích các khái niệm phức tạp cho các nhà phát triển mới làm quen và khắc phục sự cố nhanh chóng cho khách hàng.



Related posts