Cách duy trì quyền đối với file khi sao chép file trong Linux
Bạn muốn giữ lại quyền đối với file khi sao chép file trên Linux? Đây là cách thực hiện bằng cách sử dụng cp và rsync.
- Cách cài đặt phần mềm trên Linux: Giải thích về các định dạng gói
- Cách bắt đầu sử dụng Linux
- Cách thiết lập máy chủ Git riêng trên Linux
- Dựa vào tiêu chí nào để lựa chọn laptop phù hợp với lập trình viên?
- Cách sử dụng lệnh để xóa thư mục/tệp trong Linux
Table of Contents
Quyền đối với file (File permissions) là một phần không thể thiếu của giao diện Unix Specification. Tuy nhiên, có một số điều mà người mới dùng Linux thường không biết, chẳng hạn như cách giữ quyền đối với file trong Linux khi sao chép chúng.
Vì các file được sao chép về cơ bản là các file mới, quyền của chúng phụ thuộc vào umask của người dùng hiện tại. Điều này có thể dẫn đến các tình huống trong đó các file hoặc thư mục được sao chép có các quyền hoàn toàn khác với file gốc.
May mắn là rất dễ để giữ lại quyền đối với file trong Linux bằng cách sử dụng các công cụ dòng lệnh tiêu chuẩn như cp và rsync. Hãy xem các ví dụ dưới đây để biết cách sao chép và duy trì các quyền trong Linux.
Duy trì quyền đối với file bằng cp
Lệnh cp chuẩn có tất cả những gì bạn cần để giữ lại quyền đối với file trong khi sao chép. Bạn có thể sử dụng tùy chọn -p của cp để duy trì chế độ (mode), quyền sở hữu và dấu thời gian (timestamp) của file.
cp -p source-file dest-file
Tuy nhiên, bạn sẽ cần thêm tùy chọn -r vào lệnh này khi xử lý các thư mục. Nó sẽ sao chép tất cả các thư mục con và các file riêng lẻ, giữ nguyên các quyền ban đầu của chúng.
cp -rp source-dir/ dest-dir/
Bạn cũng có thể sử dụng tùy chọn -a của cp để giữ lại quyền đối với file. Điều này cho phép chế độ Lưu trữ , bảo toàn mọi thứ từ quyền đối với file đến ngữ cảnh SELinux.
cp -a source-dir/ dest-dir/
Giữ quyền trong Linux bằng rsync
Bạn cũng có thể sử dụng tiện ích rsync để duy trì quyền sao chép trong Linux. Nhiều quản trị viên thích rsync hơn cp do tốc độ sao chép của nó nhanh hơn. Vì rsync chỉ sao chép phần cập nhật của file, chúng phù hợp hơn cho các tác vụ như sao chép ổ cứng Linux của bạn .
rsync -a source-dir/ dest-dir
Tùy chọn -a của rsync cho phép Archive Mode (Chế độ Lưu trữ), chế độ này bảo toàn các thuộc tính file như quyền và quyền sở hữu. Bạn có thể sử dụng tùy chọn -v cho đầu ra “verbose”* và -h để xem các số ở định dạng con người có thể đọc được.
*Verbose mode: một tùy chọn có sẵn trong nhiều hệ điều hành máy tính, bao gồm Microsoft Windows , macOS và Linux . Nó cung cấp các chi tiết bổ sung về những gì máy tính đang làm và những trình điều khiển và phần mềm mà nó đang tải trong khi khởi động.
rsync -avh source-dir/ dest-dir
Ngoài ra, hãy lưu ý việc loại trừ dấu gạch chéo kết thúc ( / ) khỏi thư mục đích. Thêm dấu gạch chéo kết thúc vào đích sẽ khiến rsync sao chép các file dưới cấp thư mục con khác.
Xác minh quyền đối với file trong Linux
Bạn có thể dễ dàng xác minh quyền đối với file trong Linux bằng lệnh getfacl (lấy danh sách kiểm soát truy cập file). Nó sẽ xác thực xem các quyền có được giữ nguyên như mong đợi hay không.
getfacl source-file
getfacl dest-file
Sao chép file trong khi bảo lưu quyền trong Linux
Cả cp và rsync đều cung cấp các tùy chọn tiêu chuẩn để bảo toàn quyền đối với file trong Linux. Bạn có thể sử dụng cp cho các công việc hàng ngày, trong khi rsync sẽ phù hợp hơn với dữ liệu quy mô lớn. Đảm bảo xác thực các quyền bằng getfacl sau khi bạn sao chép xong.
Mặc dù rsync có thể sao chép file giữa các máy từ xa, lệnh scp (sao chép an toàn) là một tùy chọn khả thi khác cho tác vụ này. Bạn có thể sao lưu các file tin vào và từ các hệ thống được nối mạng một cách an toàn bằng cách sử dụng scp.
Dịch từ: https://www.makeuseof.com/preserve-file-permissions-in-linux-while-copying-them/
Vân Nguyễn
Bình luận (0
)