Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Linux chmod đệ quy:Cách thay đổi quyền đối với tệp một cách đệ quy

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

Có thể trước đây bạn đã gặp phải các lỗi sau:

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

Đối với bất kỳ tệp hệ thống nào, sử dụng sudo là cách ưu tiên để chỉnh sửa tệp. Điều này cho phép bạn giữ tất cả bối cảnh hệ thống. Để sử dụng hàng ngày với các tệp người dùng, tốt nhất bạn nên thay đổi quyền. chmod có thể làm điều đó cho chúng tôi. Nó giúp chúng tôi không cần báo cáo quyền và cung cấp cho chúng tôi quyền truy cập khi chúng tôi cần.

Chmod là gì? chmod, hoặc thay đổi chế độ, thay đổi các bit chế độ tệp của một tệp nhất định. Bạn có thể thay đổi nó theo biểu tượng hoặc bằng cách 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, but only for changes
[-f], --silent, --quiet
Suppress most error messages
[-v], --verbose
Output a diagnostic for every file processed
[-R], --recursive
Change files and directories recursively

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

chmod +x [FILE]

Và điều đó sẽ thêm quyền thực thi. Chúng tôi đã xem qua những điều cơ bản, chúng tôi sẽ sửa cấu trúc thư mục và cung cấp nó cho chúng tôi.

chmod Đệ quy

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

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

chmod -R 755 *
ls -altrR

Cho chúng tôi thấy những điều sau đây sau khi chúng tôi thay đổi quyền.

Linux chmod đệ quy:Cách thay đổi quyền đối với tệp một cách đệ quy

chmod -R

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

Được rồi, chúng ta bắt đầu. Ở trên, chúng tôi thấy các thư mục và tệp của chúng tôi đã thay đổi để phù hợp với 755 hoặc rwx r-x r-x . Thư mục đó hiện có sẵn cho chúng tôi vì chúng tôi thuộc nhóm đó (nhóm người dùng). Nó cũng có sẵn cho chúng tôi vì chúng tôi là người dùng. Nếu bạn đang dọn dẹp các thư mục từ người dùng trước, bạn có thể thay đổi quyền sở hữu các tệp bằng chown.

Điều này làm cho nó có sẵn cho bạn với tư cách là một người dùng. Tuy nhiên, có một vấn đề với chmod ở trên . Khi bạn đặt umask sang một cái gì đó như 0022, hoán vị, thư mục và tệp mặc định là khác nhau. Các thư mục được tạo ở 755. Cho phép cd , thay đổi thư mục, lệnh để hoạt động đúng. Các tệp được tạo dưới dạng 644, ít hơn một so với thư mục. Điều này là do các tệp bình thường không cần quyền thực thi. Thư mục làm, cho cd . Vì vậy, hãy khắc phục sự cố này bằng find -exec .

chmod Đệ quy với Tìm

find <dir> -type d -exec chmod 755{} \; find <dir> -type f -exec chmod 644 {} \;
Linux chmod đệ quy:Cách thay đổi quyền đối với tệp một cách đệ quy

chmod Đệ quy với Tìm

Và chúng ta bắt đầu, mọi thứ đã được lưu và giữ phù hợp với umask mặc định. Không có tệp thực thi và thư mục thực thi.

Kết luận

Các quyền đối với tệp có thể bị dính, nhưng chmod giúp chúng tôi khắc phục điều đó. Bây giờ bạn đã biết cách thay đổi quyền, bạn có thể thực sự có quyền sở hữu các thư mục và tệp của mình. Bạn cần tìm hiểu thêm về cách điều hướng cơ sở hạ tầng Linux bằng các lệnh shell? Đọc thêm hướng dẫn tại đây.