Sự khác biệt chính giữa chmod và chown là gì?


43

Trong một số ví dụ, tôi thấy rằng một số được sử dụng chownthay vì chmod. Tôi không biết sử dụng ở đâu chmodchown. Hãy giải thích cho tôi sự khác biệt giữa chúng, khi nào và tại sao tôi nên sử dụng.


18
Không ai làm cho nó rõ ràng: một ch anges mod e và các ch ang khác là er er riêng . Ngoài ra, đọc người đàn ông ual.
Ngừng làm hại Monica

1
Và trong khi chowncũng có thể ch ange các gr ou p , có chgrpcống hiến đặc biệt để nhiệm vụ này.
Ngừng làm hại Monica

6
Sự khác biệt chính giữa một quả chuối và một cái ghế là gì? Đừng ngồi trên chuối.
Shadur

Câu trả lời:


48

Hãy tạo một tập tin

touch rainbow

Chúng ta hãy xem siêu dữ liệu của tệp

$ ls -l rainbow
-rw-rw-r-- 1 zanna zanna 0 May 24 10:09 rainbow

Phần đầu tiên của thông tin là loại tệp ( -lúc đầu có nghĩa là tệp thông thường) và các bit cho phép

Sau đó, chúng tôi thấy chủ sở hữu (zanna) và nhóm (zanna). Chúng ta có thể sử dụng chownlệnh để thay đổi chúng:

$ sudo chown pixie rainbow
$ ls -l rainbow
-rw-rw-r-- 1 pixie zanna 0 May 24 10:09 rainbow

Và chúng tôi sử dụng chmodđể thay đổi các bit cho phép

$ sudo chmod 333 rainbow
$ ls -l rainbow
--wx-wx-wx 1 pixie zanna 0 May 24 10:09 rainbow

Vì các bit quyền được đặt riêng cho chủ sở hữu, nhóm và những người khác, bạn có thể kiểm soát quyền truy cập tệp cho những người dùng khác nhau bằng cách kết hợp chownchmod. Xem hướng dẫn ngắn này cho một khóa học sự cố về quyền trong Linux.


1
+1 cho hình ảnh .. Không có bát phân def mặc dù? Hay chmod a+wví dụ? Điều này tốn thời gian để làm nhưng nhận được nhiều phiếu hơn Tôi nghĩ: D
WinEunuuchs2Unix

2
@ WinEunuuchs2Unix haha ​​cảm ơn ... Tôi đã cố tình chọn một cài đặt quyền đặc biệt vô dụng. Nếu tôi thực sự bắt đầu giải thích khi nào và tại sao nên sử dụng mọi hoán vị có thể có chmodchown(câu hỏi quá rộng cho đến nay) câu trả lời của tôi sẽ tiếp tục mãi mãi. Cố gắng làm cho nó đơn giản
Zanna

96

Trong thuật ngữ đơn giản chownđược sử dụng để thay đổi quyền sở hữu của một tệp trong khi chmodđể thay đổi các bit chế độ tệp.

  • chown định nghĩa ai sở hữu tập tin
  • chmod định nghĩa ai có thể làm gì.

Khi bạn biến ai đó thành chủ sở hữu của một tệp, anh ta có thể thực hiện hầu hết mọi nơi anh ta muốn với tệp đó, ví dụ như anh ta có thể sử dụng chmodđể thay đổi mod (quyền) để xác định ai có thể làm gì.

$ ls -l file
-rwxrwxr-x  2  ravexina admins   26 May  9 12:49 file

Ở dòng trên chúng ta có thể thấy đó ravexinalà chủ sở hữu của tệp và adminslà nhóm. Tôi có thể sử dụng: sudo chown dave:sudo fileđể thay đổi chủ sở hữu của tệp davevà nhóm thành sudo; Bây giờ tệp thuộc về "dave" và mọi người trong nhóm "sudo".

Tuy nhiên với chmodchúng tôi xác định ai có thể làm gì? ai có quyền đọc một tập tin, ghi vào một tập tin hoặc thực hiện nó. ví dụ:

chmod 777 file

trao quyền đọc, viết và thực thi cho mọi người bao gồm chủ sở hữu, nhóm và mọi người khác.

Từ Turnoff.us : nhập mô tả hình ảnh ở đây


1
Chủ sở hữu không thể làm bất cứ điều gì họ muốn với tệp - xóa hoặc di chuyển yêu cầu quyền ghi trên thư mục chứa.
muru

2
@muru điều đó đúng;) Ý tôi là đọc / ghi / thực thi, cũng chattrcó thể ảnh hưởng đến tập tin tôi đoán.
Ravexina

1
@KamilMaciorowski Bạn biết điều đó, tôi biết rằng, Ravexina biết điều đó, nhưng hầu hết mọi người thì không.
muru

2
@KamilMaciorowski Tôi chưa yêu cầu bạn giả vờ bất cứ điều gì. Điều bạn đang thiếu là hầu hết mọi người không nghĩ đến việc xóa hoặc đổi tên tệp thành các hoạt động trên thư mục, mà là các hoạt động trên tệp. Đó là lý do tại sao chúng tôi có những câu hỏi như thế này: superuser.com/q/373115/334516 , unix.stackexchange.com/q/48579/70524 , askubfox.com/q/240424/158442 Rõ ràng bạn biết đây là các hoạt động trên thư mục (xin chúc mừng !), nhưng có một quan niệm sai lầm phổ biến về điều đó, vì vậy tôi lưu ý rằng việc đổi tên hoặc xóa liên quan đến quyền trên thư mục, không phải tệp. ...
muru

1
@KamilMaciorowski ... Câu hỏi này là của một người dùng không biết sự khác biệt giữa chmod và chown, vì vậy có vẻ hợp lý với tôi rằng họ sẽ không biết rằng việc đổi tên một tệp sẽ cần quyền trên thư mục.
muru

19

Khi xem xét các quyền của tệp (hoặc thư mục hoặc bất cứ thứ gì), có hai yếu tố:

  • ai sở hữu tệp - người dùng và nhóm, và
  • những gì họ có thể làm với nó - đọc, viết, thực hiện hoặc kết hợp chúng.

chowngiao dịch với ai . chmodđề cập đến những gì . Bạn không thể sử dụng cái này thay vì cái kia.

Các quyền Unix đơn giản phân loại người dùng đang cố truy cập một tệp thành ba loại:

  1. chủ sở hữu của tập tin
  2. người dùng là thành viên của nhóm sở hữu tệp
  3. mọi người khác

chownđược sử dụng để thay đổi hai cái đầu tiên. chmodđược sử dụng để thay đổi các quyền được cấp cho các loại này.


7

Một vài điểm / mẹo để thêm vào các câu trả lời xuất sắc trước đó:

  • Bạn phải có quyền thực thi trên một thư mục (và tất cả những người ở trên nó) để truy cập nó
  • Sử dụng tùy chọn -R để áp dụng các thay đổi theo cách đệ quy cho mọi thứ bao gồm và bên dưới mục tiêu, ví dụ: chown -R www-data files/
  • Bạn có thể thay đổi người dùng và nhóm cùng một lúc bằng cách sử dụng cú pháp chown user:group myfile
  • Thông thường, việc sử dụng các tùy chọn '+' và '-' sẽ dễ dàng hơn / tốt hơn thay vì đặt các quyền tuyệt đối, đặc biệt là khi xử lý kết hợp các tệp và thư mục. Ví dụ: nếu bạn muốn cấp quyền ghi nhóm cho một thư mục và mọi thứ bên dưới nó, chmod -R 775 files/sẽ tạo ra 'files /' và mọi thứ trong và bên dưới nó có thể thực thi và có thể đọc được cho tất cả, có thể không phải là kết quả mong muốn cho mọi tệp. Sử dụng chmod -R g+w files/sẽ chỉ thêm quyền viết nhóm mà không cần chạm vào bất cứ điều gì khác.

6

Câu trả lời rất tốt đã có, nhưng tôi muốn đóng góp trong đó các quyền rất dễ hiểu

chmod u=r+w,o=r-w,g=-r-w test.php

u = user
o = other
g = group

Bằng cách này bạn có thể dễ dàng nối các quyền vào một tệp. Trong ví dụ trên

user = read + write
other = read but not write
group = not read not write

Và đừng quên -Rnếu bạn muốn thay đổi quyền đệ quy.


1

chownSẽ thay đổi người sở hữu tệp và nhóm thuộc về nhóm nào, đồng thời chmodthay đổi cách chủ sở hữu và nhóm có thể truy cập tệp (hoặc nếu họ có thể truy cập tệp đó).

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.