Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Hiểu chmod 777: Ý nghĩa và tác động đến quyền Linux

Bài viết này khám phá chmod 777, một lệnh Linux dùng để cấp TẤT CẢ QUYỀN cho user, group, và others.

Là user Linux mới, web developer, hoặc system administrator, bạn có thể đã được hướng dẫn gõ:

chmod 777 /path/to/file/or/folder

…vào shell Linux của bạn tại một thời điểm nào đó.

Bất cứ khi nào bạn chạy lệnh trên hệ thống (đặc biệt là root!), bạn LUÔN LUÔN nên biết chúng làm gì. Vậy chmod 777 thực sự là gì?

Quyền trong Linux

Hiểu chmod 777: Ý nghĩa và tác động đến quyền Linux

ls – l command

Trên là ví dụ chạy:

ls -l

lệnh, sẽ liệt kê nội dung thư mục hiện tại ở định dạng liệt kê dài, hiển thị quyền và ngày sửa đổi cho file được liệt kê.

  • Cột đầu hiển thị là quyền gán cho file hoặc thư mục
  • Cột hai là số file hoặc thư mục chứa
  • Cột ba và tư hiển thị user và group có quyền cho file đó, tương ứng
  • Cột năm và sáu hiển thị kích thước và ngày sửa đổi
  • Cột cuối hiển thị tên file

Cột một, ba, và tư chứa thông tin liên quan đến quyền, sẽ được tham chiếu trong bài này

Thư mục liệt kê trong screenshot là trong thư mục home của user linuxscrew, và tất cả có quyền

drwxr-xr-x

Với cả owner và group của user linuxscrew sở hữu chúng.

drwxr-xr-x chứa 4 mẩu thông tin, 3 trong số đó về quyền:

d rwx r-x r-x
Là thư mục Owner có thể Read, Write, eXecute Group có thể Read, eXecute Others có thể Read, eXecute
  • Chữ cái đầu cho biết loại file – nếu d là thư mục, nếu – là file thường
  • Ký tự 2-4 chứa quyền cho user
  • Ký tự 5-7 chứa quyền cho group
  • Ký tự 8-10 chứa quyền cho others

Chữ cái trong mỗi khối có ý nghĩa sau:

  • ‘-‘ từ chối quyền
  • ‘r’ quyền đọc
  • ‘w’ quyền ghi
  • ‘x’ quyền thực thi

Cũng có một số giá trị đặc biệt ký tự eXecute có thể nhận:

  • ‘s’ bit setuid, tìm thấy trong quyền user hoặc group, user có thể thực thi file sẽ thực thi với đặc quyền owner file và/hoặc group file. Nghĩa là x được đặt, làm file executable
  • ‘S’ Giống ‘s’ nhưng file không executable
  • ‘t’ Sticky bit, tìm thấy trong quyền others, làm file sticky – chỉ owner có thể rename hoặc xóa file hoặc file bên trong. Group và others không thể! Nó cũng nghĩa là x được đặt, làm file executable
  • ‘T’ Giống ‘t’ nhưng file không executable

Để đầy đủ, loại file khác nhau có thể chiếm ký tự đầu tiên:

  • ‘-‘ file thường
  • ‘b’ file block special
  • ‘c’ file character special
  • ‘C’ file high performance (“contiguous data”)
  • ‘d’ thư mục
  • ‘D’ door (Solaris 2.5 trở lên)
  • ‘l’ symbolic link
  • ‘M’ file off-line (“migrated”) (Cray DMF)
  • ‘n’ file network special (HP-UX)
  • ‘p’ FIFO (named pipe)
  • ‘P’ port (Solaris 10 trở lên)
  • ‘s’ socket
  • ‘?’ loại file khác

Ý nghĩa của 777

Để làm cho việc gán quyền nhanh hơn, số có thể dùng để biểu diễn tổ hợp chữ cái trên:

  • 7 Tất cả quyền
  • 6 Đọc và ghi
  • 5 Đọc và thực thi
  • 4 Chỉ đọc
  • 3 Thực thi và ghi
  • 2 Chỉ ghi
  • 1 Chỉ thực thi
  • 0 Không quyền

Vì vậy, để cấp TẤT CẢ QUYỀN cho cả user, group, và others, chúng ta muốn gán quyền 777

Lệnh chmod

Lệnh chmod (Change Mode) cho phép bạn áp dụng quyền cho file.

chmod 777

Vì vậy, chạy:

chmod 777 /path/to/file/or/folder

…sẽ cấp cho owner (user), group (user trong group), và others (mọi người khác trên hệ thống) đầy đủ quyền đọc, ghi và thực thi.

chmod -R 777 /path/to/file/or/folder

Điều này làm điều tương tự, đệ quy, và cấp cho mọi người toàn quyền trên file chứa trong thư mục.

Bây giờ bạn biết!