Tìm hiểu về quyền và cách sử dụng chmod của Linux


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 thức hoạt động của quyền. 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ủ lưu trữ web của tôi thay đổi quyền đối với tệp là 755.

Tôi không biết điều đó có nghĩa là gì, mặc dù thay đổi các quyền đã khắc phục sự cố. Bây giờ tôi đã nhận ra các điều khoản Linux không phức tạp lắm, 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 ở mức 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.

Quyền và amp; Mức

Trong Linux, về cơ bản có ba điều khoản mà bạn thường sẽ phải lo lắng: đọc, viết và thực thi. Tất cả ba trong số này là 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 ở các cấp.

Có ba cấp quyền trong Linux: chủ sở hữu, nhóm và các quyền khác. Chủ sở hữu là người dùng sở hữu tệp / thư mục, nhóm này bao gồm những người dùng khác trong nhóm của tệp và 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, viết và thực thi được biểu diễn dưới dạng ký tự tượng trưng hoặc dưới dạng số bát phân. Ví dụ: nếu bạn thực hiện lệnh ls -l trong một thư mục với 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. Dấu gạch ngangcó nghĩa là tệp và dlà viết tắt của thư mục. Lưu ý rằng bit đầu tiên cũng có thể là lnế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à để viết và bit thứ ba là để thực thi. Ba bit đầu tiên là cho chủ sở hữu, ba bit thứ hai là dành cho nhóm và ba bit thứ ba là dành cho người khác. Dưới đây là 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ó sự cho phép đó. Trong ví dụ trên, chủ sở hữu, nhóm và mọi người khá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 đây:

-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. Dưới đâ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ố đại diệ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 tương tự là bằng cách 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 sử dụng ký hiệu hoặc số bát phân.

Vậy Linux đại diện cho đọc, viết và thực thi bằng cách sử dụng 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ư được hiển thị bên dưới.

Quyền đọc được đại diện bởi 4, viết bởi 2 và thực hiện bởi 1. Tất cả những gì bạn phải làm là thêm chúng lên để nhận được sự cho phép bát phân. Ví dụ: chúng ta hãy lấy ví dụ ở trên nơi mọi người đều có tất 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ỉ cho phép đọc / ghi:

-rw-rw-rw-

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

Bây giờ, hãy thử theo cách khác. Giả sử chúng tôi muốn biết những quyền nào 755đại diện cho? Vâng, thật dễ dàng để tìm ra nếu bạn chia nhỏ 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, 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 điều tốt giải thích về cách thể hiện quyền trong Linux bằng cách sử dụng số bát phân. Nói chung là khá thẳng thắn.

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

Giờ chúng tôi đã hiểu cách đọc quyền, hãy nói về cách chúng tôi 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 ta đã nói ở trên, cụ thể là:

-rw-rw-rw-

Nếu chúng ta 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 biểu tượng hoặc phương thức bát phân. Đối với phương thức ký hiệu, chúng ta sẽ thực hiện như sau:

Lệnh chính xác là

chmod a+x filename

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), nhóm khác (o) hoặc tất cả (a) theo sau là +để thêm quyền hoặc -để lấy quyền và sau đó là chữ cho phép (rđể đọc, wđể viết và xđể thực thi).

Trong ví dụ trên, tôi đã thêm thực thi quyền 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à xcho chủ sở hữu, nhóm và nhóm khác. Bây giờ chúng ta hãy nói rằng tôi muốn loại bỏ quyền ghi và thực thi chỉ cho nhóm và những người dùng khác.

Như bạn thấy ở đây, tôi đã sử dụng với lệnh sau để thực hiện việc 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 ký tự gvà thư o. Tôi muốn xóa quyền, vì vậy tôi sử dụng ký hiệ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. Dưới đây là một bảng nhỏ gọn để 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ờ chúng ta hãy nói về phương pháp bát phân, mà tôi thấy dễ hơn một chút. Octal rất hay 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 tôi bắt đầu với các quyền sau trên tệp, hãy xem cách chúng tôi 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:

chmod 744 filename

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 đã cho phép 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 một số không để biểu thị không có quyền. 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, đó 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. Hãy tận hưởng!

Hướng dẫn Lệnh Linux 02: Phân quyền Linux: lệnh chmod

bài viết liên quan:


16.02.2017