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

Thành thạo Linux chmod: Thay đổi quyền file đệ quy dễ dàng

Với lệnh chmod Linux, chúng ta có thể thay đổi quyền file đệ quy trên tất cả file và thư mục. Hướng dẫn này giải thích cách.

Có lẽ bạn đã từng gặp lỗi sau:

111 [Permission Denied] "Linux-Screw" [Permission Denied] "Linux-Screw" [readonly]

Đối với file hệ thống, dùng sudo là cách ưa thích để sửa file. Điều này cho phép bạn giữ tất cả ngữ cảnh hệ thống. Đối với dùng hàng ngày với file user, tốt nhất là thay đổi quyền. chmod có thể làm đó cho chúng ta. Nó giữ chúng ta không cần leo quyền và cho truy cập khi cần.

chmod là gì? chmod, hoặc change mode, thay đổi bit mode file của file cho trước. Bạn có thể thay đổi nó theo cách tượng trưng hoặc với biểu diễn số bát phân.

Cú pháp chmod

chmod [OPTION] MODE FILE
Or
chmod [OPTION] OCTAL-MODE FILE
Options:
[-c], --changes Verbose-mode, nhưng chỉ cho thay đổi
[-f], --silent, --quiet Loại bỏ hầu hết thông báo lỗi
[-v], --verbose Xuất chẩn đoán cho mỗi file xử lý
[-R], --recursive Thay đổi file và thư mục đệ quy

Đó là các tùy chọn có sẵn. Mode đề cập đến tham chiếu tượng trưng. Nếu tôi muốn thêm quyền thực thi cho file, tôi nhập:

chmod +x [FILE]

Và đó sẽ thêm quyền thực thi. Chúng ta đã qua cơ bản, chúng ta sẽ sửa cấu trúc thư mục và làm nó có sẵn cho chúng ta.

Đệ quy chmod

Thường khi bạn làm việc trong thư mục, bạn không cần thay đổi quyền của một file đơn. Bạn sẽ cần thay đổi quyền của file đó, tất cả file trong thư mục hiện tại, và tất cả thư mục con.

May mắn thay, chmod -R cho phép chúng ta thay đổi đệ quy tất cả file.

chmod -R 755 *
ls -altrR

Cho thấy sau khi chúng ta thay đổi quyền.

Thành thạo Linux chmod: Thay đổi quyền file đệ quy dễ dàng

chmod -R

Nếu bạn muốn biết tại sao -altrh là bộ tùy chọn mặc định và ưa thích của tôi, xem bài gần đây của tôi về ls.

Ổn, xong. Trên đây chúng ta thấy thư mục và file đã thay đổi khớp 755, hoặc rwx r-x r-x. Thư mục đó hiện có sẵn cho chúng ta vì chúng ta thuộc nhóm đó (một nhóm user). Nó cũng có sẵn cho chúng ta vì chúng ta là user. Nếu bạn dọn dẹp thư mục từ user trước bạn có thể thay đổi sở hữu file với chown.

Điều này làm cho nó có sẵn cho bạn như một user. Tuy nhiên, có vấn đề với chmod trên. Khi bạn thiết lập umask thành something like 0022, default perm, thư mục và file khác nhau. Thư mục được tạo ở 755. Cho phép lệnh cd, change directory, hoạt động đúng. File được tạo như 644, ít hơn thư mục một bậc. Điều này vì file bình thường không cần quyền thực thi. Thư mục cần, cho cd. Vậy hãy sửa với find và -exec.

chmod đệ quy với Find

find  -type d -exec chmod 755 {} \;
find  -type f -exec chmod 644 {} \;
Thành thạo Linux chmod: Thay đổi quyền file đệ quy dễ dàng

chmod đệ quy với Find

Và xong, mọi thứ được lưu và giữ phù hợp với umask mặc định. Không file thực thi, và thư mục thực thi.

Kết luận

Quyền file có thể rắc rối, nhưng chmod giúp chúng ta sửa điều đó. Bây giờ bạn biết cách thay đổi quyền, bạn có thể thực sự nắm quyền sở hữu thư mục và file. Cần học thêm về điều hướng cơ sở hạ tầng Linux với lệnh shell? Đọc thêm hướng dẫn ở đây.