Lệnh chmod cho phép người dùng thay đổi quyền đọc ghi trong hệ thống Unix. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sửa đổi quyền đối với tệp và thư mục bằng chmod
Các hệ thống tương tự Unix, bao gồm các hệ thống Linux chạy trên nền tảng Linode, có một hệ thống kiểm soát truy cập cực kỳ mạnh mẽ cho phép quản trị viên hệ thống cho phép nhiều người dùng truy cập vào một hệ thống một cách hiệu quả mà không cần cấp cho mọi người dùng quyền truy cập vào mọi tệp trên hệ thống tệp. Lệnh
chmod [who][+,-,=][permissions] filename
3 là cách tốt nhất và dễ dàng nhất để sửa đổi các quyền đối với tệp nàyHướng dẫn này cung cấp tổng quan ngắn gọn về quyền đối với tệp và hoạt động của lệnh
chmod [who][+,-,=][permissions] filename
3 cùng với một số ví dụ thực tế và ứng dụng của lệnh chmod [who][+,-,=][permissions] filename
3. Nếu bạn thấy hướng dẫn này hữu ích, vui lòng xem hướng dẫn thực hành quản trị cơ bản của chúng tôi và hướng dẫn nhóm và người dùng Linux tiếp theoKhái niệm cơ bản về quyền đối với tệp Linux
Tất cả các đối tượng hệ thống tệp trên các hệ thống giống Unix có ba loại quyền chính. đọc, ghi và thực thi quyền truy cập. Quyền được ban cho ba lớp có thể. chủ sở hữu, nhóm và tất cả người dùng hệ thống khác
Để xem quyền truy cập tệp của một tập hợp tệp, hãy sử dụng
ls -lha
Trong cột đầu tiên của đầu ra, có 10 ký tự đại diện cho các bit cho phép. Để hiểu tại sao chúng được gọi là bit quyền, hãy xem phần bên dưới
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
Một cách để hiểu ý nghĩa của cột này là chia các bit thành các nhóm
File typeUserGroupGlobalchmod [who][+,-,=][permissions] filename
6 Directorychmod [who][+,-,=][permissions] filename
7chmod [who][+,-,=][permissions] filename
8chmod [who][+,-,=][permissions] filename
8chmod g+w ~/example.txt
0 Regular filechmod g+w ~/example.txt
1chmod g+w ~/example.txt
2chmod g+w ~/example.txt
2chmod g+w ~/example.txt
4 Symbolic Linkchmod [who][+,-,=][permissions] filename
7chmod [who][+,-,=][permissions] filename
7chmod [who][+,-,=][permissions] filename
7Ký tự đầu tiên đại diện cho loại tệp. Chín bit còn lại trong nhóm ba đại diện cho các quyền tương ứng cho người dùng, nhóm và toàn cầu. Mỗi cái là viết tắt của
Lưu ý rằng quyền truy cập vào các tệp được nhắm mục tiêu bởi các liên kết tượng trưng được kiểm soát bởi các quyền của tệp được nhắm mục tiêu, không phải quyền của đối tượng liên kết. Có những thứ kiểm soát các khía cạnh khác của quyền truy cập vào tệp
Cách sử dụng chmod
Trong hướng dẫn này, chmod đề cập đến các phiên bản gần đây của chmod chẳng hạn như các phiên bản được cung cấp bởi dự án GNU. Theo mặc định, chmod được bao gồm trong tất cả các hình ảnh do Linode cung cấp và là một phần của lựa chọn gói "cơ sở" phổ biến được cung cấp trong hầu hết các bản phân phối của hệ điều hành dựa trên Linux
Thay đổi quyền của tệp bằng chmod
Để thay đổi quyền truy cập tệp bằng chmod, hãy chạy
chmod [who][+,-,=][permissions] filename
3, hoán đổi quyền truy cập tệp mong muốn và thư mục hoặc tệp. Chủ sở hữu có thể thay đổi quyền truy cập tệp cho bất kỳ người dùng, nhóm hoặc những người khác bằng cách thêm chmod g+w ~/example.txt
0 để xóa hoặc chmod g=u ~/example.txt
0 để thêm một số quyền nhất định. Các quyền này được phân loại thành đọc, viết hoặc thực thiTrong vài phần tiếp theo, chúng ta sẽ đi sâu vào cú pháp chmod
Sử dụng cú pháp ký hiệu tượng trưng với chmod
Định dạng của lệnh chmod là
chmod [who][+,-,=][permissions] filename
Hãy xem xét lệnh chmod sau
chmod g+w ~/example.txt
Điều này cấp cho tất cả các thành viên của nhóm người dùng sở hữu tệp
chmod g=u ~/example.txt
1 quyền ghi. Các tùy chọn khả thi khác để thay đổi quyền của người dùng được nhắm mục tiêu làAi [Thư]MeaninguuserggroupoothersaallToán tử
chmod g=u ~/example.txt
0 cấp quyền trong khi toán tử chmod g+w ~/example.txt
0 lấy đi quyền. Quyền sao chép cũng có thểchmod g=u ~/example.txt
Tham số
chmod g=u ~/example.txt
4 có nghĩa là cấp quyền cho nhóm giống như quyền của người dùngCó thể chỉ định nhiều quyền bằng cách tách chúng bằng dấu phẩy, như trong ví dụ sau
chmod g+w,o-rw,a+x ~/example-files/
Điều này thêm quyền ghi cho các thành viên nhóm người dùng và xóa quyền đọc và ghi khỏi những người dùng “khác” của hệ thống. Cuối cùng,
chmod g=u ~/example.txt
5 thêm quyền thực thi cho tất cả các danh mục. Giá trị này cũng có thể được chỉ định là chmod g=u ~/example.txt
6. Nếu không có danh mục nào được chỉ định, quyền sẽ được thêm hoặc bớt vào tất cả các danh mục quyềnTrong ký hiệu này, chủ sở hữu của tệp được gọi là
chmod g=u ~/example.txt
7 [e. g. chmod g=u ~/example.txt
8]chmod -R +w,g=rw,o-rw, ~/example-files/
Tùy chọn
chmod g=u ~/example.txt
9 áp dụng sửa đổi các quyền một cách đệ quy cho thư mục được chỉ định và cho tất cả nội dung của nóSử dụng cú pháp ký hiệu bát phân với chmod
Một phương pháp khác để đặt quyền là thông qua ký hiệu bát phân
Dưới đây là ví dụ về quyền đối với tệp tương đương với
chmod g+w,o-rw,a+x ~/example-files/
0chmod 750 ~/example.txt
Quyền đối với tệp này là
chmod g+w,o-rw,a+x ~/example-files/
1Bỏ qua bit đầu tiên, mỗi bit bị chiếm bởi một
chmod g+w ~/example.txt
0 có thể được thay thế bằng một chmod g+w,o-rw,a+x ~/example-files/
3 trong khi chmod g+w,o-rw,a+x ~/example-files/
4, chmod g+w,o-rw,a+x ~/example-files/
5 hoặc chmod g+w,o-rw,a+x ~/example-files/
6 được đại diện bởi một chmod g+w,o-rw,a+x ~/example-files/
7. Kết quả chuyển đổi là111 101 000
Đây được gọi là ký hiệu bát phân vì các số nhị phân được chuyển đổi thành cơ số 8 bằng cách sử dụng các chữ số từ 0 đến 7
BinaryOctalPermission0000—0011–x0102-w-0113-wx1004r–1015r-x1106rw-1117rwxMỗi chữ số độc lập với hai chữ số còn lại. Do đó,
chmod g+w,o-rw,a+x ~/example-files/
8 có nghĩa là người dùng hiện tại có thể đọc, viết và thực thi, nhóm không thể viết và những người khác không thể đọc, viết hoặc thực thichmod g+w,o-rw,a+x ~/example-files/
9, đây là quyền mặc định điển hình, cho phép đọc, viết và thực thi quyền đối với chủ sở hữu và quyền đọc đối với nhóm và người dùng “thế giới”Một trong hai ký hiệu là tương đương và bạn có thể chọn sử dụng bất kỳ hình thức nào thể hiện rõ ràng hơn nhu cầu về quyền của mình
Ví dụ về các quyền chung với chmod
chmod 600 [chmod -R +w,g=rw,o-rw, ~/example-files/
0]
chmod -R +w,g=rw,o-rw, ~/example-files/
600 quyền có nghĩa là chỉ chủ sở hữu tệp mới có quyền đọc và ghi đầy đủ đối với tệp đó. Khi quyền truy cập tệp được đặt thành 600, không ai khác có thể truy cập tệp. Các lệnh chmod ví dụ [trong các khái niệm bát phân và ký hiệu] đặt quyền thành 600
chmod 600 example.txt
chmod u=rw,g=,o= example.txt
chmod a+rwx,u-x,g-rwx,o-rwx example.txt
chmod 664 [chmod -R +w,g=rw,o-rw, ~/example-files/
1]
chmod -R +w,g=rw,o-rw, ~/example-files/
664 [______32_______1] cho phép các quyền sau. đọc và viết cho chủ sở hữu; . Nếu bạn tin tưởng những người dùng khác trong cùng một nhóm và mọi người cần có quyền ghi vào tệp thì đây là cài đặt phổ biến để sử dụng. Mặt khác, quyền
chmod -R +w,g=rw,o-rw, ~/example-files/
3 có thể được sử dụng để hạn chế quyền ghi vào nhóm. Lệnh chmod ví dụ [trong các khái niệm bát phân và ký hiệu] đặt quyền thành 664drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
0chmod 777 [chmod -R +w,g=rw,o-rw, ~/example-files/
4]
chmod -R +w,g=rw,o-rw, ~/example-files/
chmod 777 được sử dụng để cấp quyền cho mọi người đọc, viết và thực thi một tệp. Mặc dù sử dụng các quyền này là một cách nhanh chóng để khắc phục lỗi dựa trên quyền nhưng đây không phải là cách tốt nhất để bảo mật hầu hết các tệp và ứng dụng. Lệnh chmod ví dụ [trong các khái niệm bát phân và ký hiệu] đặt quyền thành 777
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
1Làm cho một tập tin có thể thực thi được
Các ví dụ sau thay đổi quyền của tệp để bất kỳ người dùng nào cũng có thể thực thi tệp “~/example. py”
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
2Khôi phục quyền tệp mặc định
Các quyền mặc định cho các tệp trên hệ thống Unix thường là
chmod -R +w,g=rw,o-rw, ~/example-files/
5 hoặc chmod -R +w,g=rw,o-rw, ~/example-files/
3. Quyền của chmod -R +w,g=rw,o-rw, ~/example-files/
5 có nghĩa là chủ sở hữu có toàn quyền truy cập đọc và ghi đối với tệp, trong khi không người dùng nào khác có thể truy cập tệp. Quyền của chmod -R +w,g=rw,o-rw, ~/example-files/
3 có nghĩa là chủ sở hữu tệp có quyền đọc và ghi, trong khi các thành viên nhóm và người dùng khác trên hệ thống chỉ có quyền đọcĐưa ra một trong các lệnh chmod sau để đặt lại quyền trên một tệp về một trong các giá trị mặc định có thể xảy ra
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
3Đối với các tệp thực thi, cài đặt tương đương sẽ là
chmod -R +w,g=rw,o-rw, ~/example-files/
9 và chmod 750 ~/example.txt
0 tương ứng với chmod -R +w,g=rw,o-rw, ~/example-files/
5 và chmod -R +w,g=rw,o-rw, ~/example-files/
3 trừ khi có quyền thực thiSử dụng một trong các ví dụ sau để đạt được các quyền “mặc định” có thể thực thi này
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
4Xóa quyền của tệp bằng chmod
Để xóa quyền đọc ghi được cấp cho một tệp, hãy sử dụng cú pháp sau
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
5Đối với ví dụ tập tin của chúng tôi. txt, chúng ta có thể xóa quyền đọc ghi bằng chmod cho nhóm bằng cách chạy lệnh sau
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
6Để xóa quyền đọc ghi chmod khỏi nhóm trong khi thêm quyền đọc ghi vào công khai/những người khác, chúng ta có thể sử dụng lệnh sau
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
7Tuy nhiên, nếu bạn muốn xóa tất cả các quyền của nhóm và những người khác, bạn có thể làm như vậy bằng cách sử dụng lệnh go= thay thế
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
8Hạn chế quyền truy cập tệp. Xóa tất cả các quyền của Nhóm và Thế giới
Có một số trường hợp quản trị viên và người dùng nên hạn chế quyền truy cập vào các tệp, đặc biệt là các tệp chứa mật khẩu và thông tin nhạy cảm khác. Các tệp cấu hình cho msmtp và Fetchmail [_______35_______3 và
chmod 750 ~/example.txt
4] là hai ví dụ phổ biếnBạn có thể xóa tất cả quyền truy cập vào các tệp này bằng các lệnh ở một trong các biểu mẫu sau
drwxr-xr-x 2 owner group 4.0K 2009-08-13 10:16 docs
-rw-r--r-- 1 owner group 8.1K 2009-07-09 16:23 roster.py
lrwxrwxrwx 2 owner group 4.0K 2009-08-13 10:16 team.docs
9Hiểu quyền thư mục Linux
Mặc dù quyền đối với thư mục trong Linux tương tự như quyền đối với tệp, nhưng có một vài điểm khác biệt chính liên quan đến cách các quyền này ảnh hưởng đến hoạt động của người dùng
- Đọc [
4]. Người dùng có thể liệt kê các mục trong một thư mục [chẳng hạn như khi sử dụng lệnhchmod g+w,o-rw,a+x ~/example-files/
6]chmod 750 ~/example.txt
- Viết [
5]. Người dùng có thể thêm, xóa hoặc đổi tên các tệp trong một thư mục - miễn là người dùng cũng có quyền thực thichmod g+w,o-rw,a+x ~/example-files/
- Thực hiện [
6]. Người dùng có thể điều hướng đến thư mục [chẳng hạn như khi sử dụng lệnhchmod g+w,o-rw,a+x ~/example-files/
9]chmod 750 ~/example.txt
Để xem quyền của tất cả các tệp và thư mục trong thư mục làm việc, hãy chạy
111 101 000
0. Đầu ra sẽ tương tự như đoạn mã dưới đây. Các thư mục được phân biệt với các tệp bằng bit đầu tiên trong các quyền. Như đã đề cập trước đây, chmod [who][+,-,=][permissions] filename
6 là viết tắt của thư mục và chmod g+w ~/example.txt
0 biểu thị mục là một tệpchmod [who][+,-,=][permissions] filename
0Quyền trên một thư mục riêng lẻ cũng có thể được xem bằng cách chạy
111 101 000
3Cách thay đổi quyền thư mục bằng chmod
Quyền thư mục có thể được điều chỉnh bằng cách sử dụng các lệnh chmod giống như đã được phác thảo trước đây để sửa đổi quyền tệp. Ví dụ sau thay đổi quyền trên một thư mục thành 755 [chủ sở hữu có quyền đọc, ghi và thực thi, trong khi người dùng trong nhóm hoặc bất kỳ người dùng nào khác có quyền đọc và thực thi]
chmod [who][+,-,=][permissions] filename
1Trong nhiều trường hợp, các quyền cũng nên được thay đổi đệ quy trên tất cả các tệp và thư mục con. Điều này có thể được thực hiện thông qua chmod bằng cách sử dụng tùy chọn
chmod g=u ~/example.txt
9. Để thay đổi tất cả các quyền đối với các tệp trong một thư mục để đọc và ghi cho chủ sở hữu, đọc cho nhóm và đọc cho những người dùng khác, hãy chạy lệnh sauchmod [who][+,-,=][permissions] filename
2Thêm thông tin
Bạn có thể muốn tham khảo các tài nguyên sau để biết thêm thông tin về chủ đề này. Mặc dù chúng được cung cấp với hy vọng rằng chúng sẽ hữu ích, xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc kịp thời của các tài liệu được lưu trữ bên ngoài