Ý nghĩa của món chmod 666 là gì?


47

Tôi đang sử dụng Linux. Ý nghĩa của là chmod 666gì?


28
aka, lệnh Satan.
Moab

6
Nếu điều đó làm phiền bạn (hoặc nếu bạn không thể nhớ những con số đó), bạn cũng có thể viết nó thành chmod a=rw.
starblue

Lệnh vô dụng, vì đối số thứ ba không được đưa ra ^^
kokbira

ngoài ra, nó có thể tạo ra các lỗi bảo mật (tất cả người dùng có thể ghi tệp / thư mục) hoặc quyền truy cập tệp / thư mục vô dụng
kokbira

Câu trả lời:


112

chmod lệnh thay đổi thuộc tính từ một tập tin / thư mục:

  • chmod 666 file/folder có nghĩa là tất cả người dùng có thể đọc và viết nhưng không thể thực thi tệp / thư mục;
  • chmod 777 file/folder cho phép tất cả các hành động cho tất cả người dùng;
  • chmod 744 file/folderchỉ cho phép người dùng (chủ sở hữu) thực hiện tất cả các hành động; nhóm và những người dùng khác chỉ được phép đọc.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Ngoài ra, bạn có thể thực thi lệnh bằng cú pháp trực quan hơn mà không cần phải suy nghĩ theo nhị phân hoặc bát phân (nhưng kiến ​​thức về cú pháp số rất quan trọng): chmod u=rw, g=rw, o=rw file/folder

Hãy nhớ rằng quyền thay đổi với chmodlệnh yêu cầu ít nhất 3 đối số, do đó, chmod 666không có gì nếu không có tệp / thư mục rõ ràng để thay đổi quyền.

Ngoài ra hãy chắc chắn để chỉ trích nếu không tạo ra sự cố không an toàn hoặc đơn giản nếu đó là thay đổi quyền vô dụng, bởi vì chmod 666sẽ cho phép tệp / thư mục ghi vào tất cả và thực thi không.


5
Chỉ có "bát phân", không phải "thập phân". +1 dù sao đi nữa.
Ben Voigt

1
Điểm thứ ba được đề cập trong bài đăng đầu tiên là không chính xác - chmod 711 chỉ cho phép chủ sở hữu thực hiện tất cả các hành động, nhóm và những người khác chỉ được phép đọc! [Nhập mô tả hình ảnh ở đây] [1] Đây là bảng cho rwx cho bát phân rwx 000 001 010 011 100 101 110 111 Octal 001 hoặc 1 biểu thị quyền thực thi Octal 7, 111 biểu thị quyền đọc ghi và thực thi do đó 711 biểu thị, rwx cho chủ sở hữu và x cho các nhóm và những người khác.

3
Dù sao nó cũng chỉ còn 7, vì vậy không có sự khác biệt giữa bát phân và thập phân trong trường hợp này. : /
Cướp

vâng, @Yash, và sau 1 năm, 2 tháng và 18 ngày sau bài đăng gốc, ai đó đã thấy lỗi đó :) Tôi sẽ sửa nó thành 744 chẳng hạn.
kokbira

1
@KyleVassella, ownerlà chủ sở hữu của tệp hoặc thư mục, thường là người đã tạo ra nó. grouplà nhóm người dùng được liên kết với tệp hoặc thư mục đó, nói chung là nhóm mà chủ sở hữu đang ở. Vì vậy, hãy tưởng tượng rằng tôi là rootbira và Groop của tôi là rootusers và bạn cũng thuộc nhóm đó, và tất cả các thành viên diễn đàn SU khác đều thuộc nhóm khác. Nếu tôi tạo một tệp và thực hiện với chmod 750, tôi sẽ đọc, viết và thực thi nó, bạn sẽ chỉ đọc và thực thi và người dùng SU sẽ không làm gì cả - đó là bí mật của chúng tôi ¬¬
kokbira

7

Nói một cách thực sự đơn giản: nó làm cho một tệp có thể đọc và ghi bởi chủ sở hữu tệp, nhóm chủ sở hữu tệp và mọi người khác sử dụng máy (tất cả). Áp dụng đối với một thư mục, nó cho phép mọi người đọc (lấy danh sách nội dung tệp) của một thư mục và viết (tạo, chỉnh sửa tệp trong thư mục) nhưng không thực hiện các tệp từ thư mục.

Để biết thêm thông tin chi tiết cách thức chmodhoạt động, hãy xem hướng dẫn tiện dụng này .


2
... Ý bạn là không cho phép mọi người đọc / ghi tệp nhưng không thực thi và để mọi người đọc / ghi tệp trong một thư mục, nhưng không liệt kê tất cả các tệp?
Earlz

2
những gì @earlz nói, cộng với viết trên một thư mục không có nghĩa là bạn có thể chỉnh sửa các tệp ở đó (viết perms trên một tệp nào) mà chỉ có nghĩa là bạn có thể tạo các mục mới (thư mục, tệp, liên kết tượng trưng, ​​v.v.). Ngoài ra, thật tuyệt khi bạn đề cập đến các thư mục cho sự hoàn chỉnh, nhưng 666 không có ý nghĩa đối với một thư mục; bạn sẽ không bao giờ loại bỏ x cho chủ sở hữu.
Rich Homolka

1
@Earlz: cảm ơn vì điều đó. Tôi luôn quên những gì 666 làm cho các thư mục bởi vì, tốt, tôi không bao giờ đặt rw- cho một người dùng trên một thư mục. :)
Ian C.

7

Như đã đề cập trong các câu trả lời khác, chmod có nghĩa là chế độ thay đổi. Nó ảnh hưởng đến các quyền đọc, ghi và thực thi cho chủ sở hữu, nhóm và các loại người dùng khác. Các số tuân theo lệnh (trong trường hợp này là 666), cho biết cách các quyền đó được sửa đổi cho tệp mà lệnh được chạy trên (đối với 666, điều đó có nghĩa là chủ sở hữu, nhóm và người khác có quyền đọc và ghi, nhưng không có quyền thực thi) .

Bằng cách thay đổi các số thành các giá trị khác nhau, bạn thay đổi hiệu quả các quyền cho tệp. Liên kết mà tôi đã tham chiếu ở trên có một công cụ nhỏ để tìm ra những giá trị bạn cần đưa vào để có được lược đồ cấp phép mà bạn theo đuổi. Nó cũng đi qua các tùy chọn chuyển đổi có sẵn cho lệnh và một số ví dụ để giúp bạn hiểu rõ hơn về cách thức hoạt động của nó.


1
Đó là một trang web tuyệt vời. Nó đang đi trong dấu trang của tôi. Cảm ơn!
Kirk

5

Lệnh chmod (viết tắt từ chế độ thay đổi) là lệnh Unix cho phép người vận hành cho hệ thống biết hệ thống truy cập bao nhiêu (hoặc ít) mà nó sẽ cho phép vào một tệp. Lệnh chmod 666có nghĩa là tất cả người dùng sẽ có quyền đọc và ghi.


2

Nếu câu hỏi của bạn liên quan đến phần 666 hơn phần chmod, tôi sẽ giới thiệu bạn đến Dự án Tài liệu Linux , nơi có một lời giải thích hợp lý về cách các quyền của tệp hoạt động trong Linux.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.