Đề XuấT, 2024

Editor Choice

Hiểu về 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 luôn làm tôi bối rối là cách các quyền hoạt động. Ví dụ: khi tải tệp lên máy chủ web của tôi một lần và gặp lỗi, tôi được máy chủ web yêu cầu thay đổi quyền truy cập 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 vấn đề. Bây giờ tôi đã nhận ra các quyền của Linux không quá phức tạp, 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à chỉ cho bạn cách sử dụng lệnh chmod để thay đổi quyền cho các tệp và thư mục.

Cấp phép & cấp độ Linux

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

Có ba cấp độ quyền trong Linux: chủ sở hữu, nhóm và người 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ả người dùng khác không phải là chủ sở hữu hoặc trong nhóm.

Đọc, viết 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 ls -l trong một 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ữ d. Dash có nghĩa là một tập tin 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à 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 là để đọc, bit thứ hai là để ghi và bit thứ ba là để 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 nhóm 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 thay cho 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 các quyền 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 cho 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.

Đại 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 để thể hiện các quyền tương tự 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 đại diện cho việc đọc, viết 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ư dưới đây.

Quyền đọc được biểu thị bằng 4, viết bằng 2 và thực thi bằng 1. Tất cả những gì bạn phải làm là thêm chúng để có được quyền bát phân. Ví dụ: hãy lấy ví dụ ở trên, nơi mọi người đều 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ị 7. Chúng tôi làm điều tương tự cho nhóm và điều tương tự cho người khác. Giá trị bát phân cuối cùng là 777. Chúng ta 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 tôi đang thêm đọc và viết. Số thứ hai sẽ giống như 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ờ hãy thử nó theo cách khác. Nói rằng chúng tôi muốn biết 755 quyền gì đại diện? Chà, thật dễ dàng để tìm ra nếu bạn chia nó theo từng con số. 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, có nghĩa là chủ sở hữu có quyền đọc / ghi / thực thi. Năm chỉ có thể nhận được bằng cách thêm 4 + 1, có nghĩa là nhóm và những người dùng khác đã đọc và thực thi quyền.

Hy vọng rằng, đó là một lời giải thích tốt cho cách thể hiện các quyền trong Linux bằng cách sử dụng các số bát phân. Đó là tổng thể khá đơn giản.

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

Bây giờ chúng ta đã hiểu cách đọc cá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à đi qua một ví dụ.

Hãy bắt đầu với các quyền mà chúng ta đã 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 thức 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à

 tên tệp chmod a + x 

Cú pháp như sau: chữ cái hoặc chữ cái đại diện cho chủ sở hữu ( u ), nhóm ( g ), khác ( o ) hoặc tất cả ( a ) theo sau là + để thêm quyền hoặc a - để lấy quyền và sau đó là chữ cái cho quyền ( r cho đọc, w cho 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à x cho chủ sở hữu, nhóm và người khác. Bây giờ hãy nói rằng 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:

 tên tệp chmod go-wx 

Vì tôi muốn thay đổi quyền cho nhóm và 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 xóa 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ả để sử dụng phương pháp biểu tượng. Bây giờ hãy nói về phương pháp bát phân, mà tôi thấy dễ dàng hơn một chút. Octal là tốt vì bạn có thể thêm hoặc xóa tất cả các quyền 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 pháp bát phân:

 -rw-rw-rw- 

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

 tên tệp chmod 744 

Điều này về cơ bản 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 phép đọc. Như bạn có thể thấy, thật dễ dàng để thêm hoặc xóa 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:

 tên tệp chmod 640 

Ở đây chúng tôi đã cấp cho chủ sở hữu quyền đọc / ghi, nhóm chỉ đọc quyền 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 nhỉ?

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 nhiều so với điều này, 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 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, hãy bình luận. Thưởng thức!

Top