Buộc quyền mới trên các tệp sau khi rsync từ seedbox


7

Tôi có một tài khoản seedbox mà tôi sử dụng để torrent. Tôi đã thiết lập một công việc định kỳ sử dụng rsyncđể tải xuống tất cả các tệp từ seedbox đến máy chủ Ubuntu 14.04.1 của tôi. Thư mục tải xuống là một chia sẻ samba, vì trước đây tôi đã sử dụng các cửa sổ để sắp xếp nội dung vào các thư mục trước khi chuyển nó đến một nơi lâu dài hơn trên máy chủ của tôi. Trước khi nâng cấp lên 14.04, tôi đã sử dụng 12.04 và mọi thứ đều hoạt động tốt.

Vấn đề là các tệp tôi nhận được từ seedbox thuộc sở hữu của người dùng có tên "544" (đây là tên người dùng được tạo bởi seedbox chứ không phải một số bát phân) và người dùng của tôi không thể xóa trên máy chủ của tôi. Sau khi thay đổi quyền trên thư mục tải xuống, tôi có thể xóa chúng. Ngoài ra, tôi đã cấp cho tất cả người dùng quyền đọc / ghi trong thư mục samba khi chia sẻ nó.

Vì vậy, câu hỏi của tôi là: Có thể thông qua một số lệnh thanh lịch được thực thi để rsyncthay đổi người dùng / quyền trên các tệp khi tải xuống? Hoặc có thể làm cho chức năng thư mục theo cách mà tất cả các tệp mới sẽ tự động thay đổi người dùng khi được sao chép / di chuyển sang nó? Tôi đoán rằng tôi có thể đặt chmodlệnh trong sudo cron để chạy thỉnh thoảng để thay đổi chủ sở hữu của các tệp, nhưng vì đôi khi lượng dữ liệu được tải xuống có thể khá lớn, thật khó để biết khi nào nên kích hoạt nó liên quan đến công việc rsync để đảm bảo tất cả các tệp được tải xuống.

Câu trả lời:


15

rsync chỉ bảo vệ chủ sở hữu nếu bạn yêu cầu nó với -o- nếu không các tệp sẽ thuộc sở hữu của người dùng đang chạy rsynclệnh, giống như khi bất kỳ tệp nào khác được tạo. -abao gồm -o, tuy nhiên, rất nhiều rsyncdòng lệnh phổ biến bao gồm nó. man rsyncbao gồm một đoạn về điều này rõ ràng:

For example: if you want to use -a (--archive) but don’t want -o
(--owner),  instead  of  converting  -a  into -rlptgD, you could
specify -a --no-o (or -a --no-owner).

Vì vậy, thay vì rsync -a source destbạn có thể sử dụng rsync -a --no-o source destđể có các tệp được sở hữu bởi người dùng đang chạy lệnh.

Mặt khác, bạn thường chỉ có thể thay đổi chủ sở hữu của một tệp nếu bạn đã root, vì vậy điều này không xuất hiện nhiều. Nếu cần phải chạy công việc này với quyền root vì một số lý do và bạn muốn các tệp được sở hữu bởi người dùng thông thường của bạn chứ không phải root, bạn có thể sử dụng --chowntùy chọn:

rsync -a --chown=youruser:yourgroup ...

Ngoài ra còn có một --usermaptùy chọn cho ánh xạ phức tạp hơn, nếu bạn muốn giữ một số người dùng. Nó có một danh sách các from:tocặp được phân tách bằng dấu phẩy .

Là một lựa chọn cuối cùng, vì rõ ràng bạn đang chạy rsynctừ một công việc định kỳ, bạn chỉ có thể nối thêm thao tác thay đổi chủ sở hữu / quyền vào công việc định kỳ với && chown ....


1
Các --chmodtùy chọn rsynccũng có thể quan tâm, vì chỉ rootcó thể thay đổi quyền sở hữu của các tập tin trên hầu hết các hệ.
D_Bye

1
Tùy chọn --chmod đã được thêm vào với phiên bản rsync 3.1. Ví dụ, tàu debian từ jessie với phiên bản đó.
suy nghĩ lại

Ngoài ra, có vẻ như cả máy khách và máy chủ nên chạy 3.1.0+ để sử dụng --chown.
Áo khoác

0

Tôi đã thử nghiệm một số cách nhưng trong trường hợp của tôi, kết quả của ví dụ: tập lệnh này

rsync -a -v --progress --modify-window=1 -c -b -i -s -m --del -vv --ignore-errors --chmod=ugo=rwx --delete --delete-excluded  --exclude='*~'  --exclude='.*' --backup-dir=.rsync_bak /home/test /media/user/usb_ext4

là quyền không thể rộng hơn quyền của phân vùng / đích nơi tệp nên được ghi vào. (Kiểm tra các quyền đó sau khi lắp thiết bị)


Đó là lệnh rsync khá phức tạp, với một số tùy chọn dư thừa và không nhất quán: ví dụ: chỉ cần -v(dài dòng) hoặc -vv(rất dài dòng) là cần thiết. Ngoài ra, --modify-window=1nên vô dụng khi -cnói rằng thời gian sửa đổi không nên được xem xét trong so sánh: nội dung phải luôn được kiểm tra. Và "quyền không thể rộng hơn quyền của mục tiêu" nghe có vẻ như là một vấn đề cụ thể của hệ thống tệp: bạn có tình cờ tham gia hệ thống tệp VFAT không?
telcoM

Tôi đang cố gắng cho vfat, fuseblk, ext3, ext4 ... Chắc chắn rằng bạn đúng khi các lệnh dường như là dư thừa. Nhưng như bạn đã nói - chỉ ở cấp lệnh đầu vào chứ không còn ở mức thực thi lệnh này. Trình tự các lệnh xác định thực thi thực tế. Bởi vì tôi đã tìm thấy một tổng quan [sâu sắc] về những lệnh nào phải được viết chính xác theo một thứ tự cụ thể và ngay sau một tùy chọn khác - Tôi đã thử nghiệm một vài kết hợp ..
InLaw
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.