Các vấn đề về lệnh của Syncync, quyền của chủ sở hữu và nhóm không thay đổi


28

Tôi đang cố gắng thiết lập chủ sở hữu và nhóm thông qua rsyncvà dường như nó không hoạt động.

Đây là lệnh:

sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/

Các tập tin đồng bộ hóa chính xác nhưng dường như không thay đổi chủ sở hữu và nhóm.

Câu trả lời:


14

Có vẻ như nó đang hoạt động chính xác. Sử dụng --owner--groupđể giữ (không đặt) tên chủ sở hữu và nhóm ... có nghĩa là bạn không muốn chúng thay đổi sau khi chuyển.

Nếu bạn không sử dụng các tùy chọn này, người dùng và nhóm sẽ được thay đổi thành người dùng yêu cầu ở đầu nhận. Nếu bạn muốn chỉ định một số người dùng khác, bạn sẽ cần thêm một chownlệnh vào tập lệnh của mình.

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

người đàn ông rsync


1
Vì vậy, làm thế nào tôi có thể chown người dùng và nhóm remotly? Qua ssh? Bạn có thể vui lòng cho tôi biết làm thế nào? Tôi có acces gốc cho cả hai máy chủ. Tôi không muốn sử dụng các phím ssh, nhưng hãy cho tôi biết tất cả các tùy chọn mà bạn biết, tôi sẽ đánh giá cao nó. Cảm ơn đã phản hồi nhanh chóng
Arnoldo Bazaldua

Lệnh sẽ trông giống như thế này: ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166 31/12/13

Tôi đã thử nó, nhưng đã không làm việc, chủ sở hữu và người dùng là như nhau. Sau khi thực hiện lệnh, nó báo: stdin: không phải là một tty
Arnoldo Bazaldua

Nó hoạt động bây giờ, các vấn đề tường lửa. Bây giờ tôi chỉ cần tự động hóa đầu vào mật khẩu cho ssh và rsync
Arnoldo Bazaldua

Tôi sẽ đăng bài này trong phần khác, cảm ơn vì sự giúp đỡ của bạn
Arnoldo Bazaldua

61

Phiên bản 3.1.0 của rsync đã giới thiệu --usermap--groupmapđược Thomas đề cập, nhưng cũng là tùy chọn tiện lợi --chown, hoạt động tốt cho kịch bản của bạn.

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

Ngoài ra, các tùy chọn -o-gđược yêu cầu. Loại trừ chúng sẽ không cập nhật thuộc tính tương ứng của chúng, nhưng không tạo ra lỗi.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

Điều này được đề cập gián tiếp trong trang chủ , trong đó nêu rõ rằng --chowntùy chọn "được triển khai bằng cách sử dụng --usermap--groupmapnội bộ" và:

Để --usermaptùy chọn có bất kỳ hiệu ứng nào, tùy chọn -o( --owner) phải được sử dụng (hoặc ngụ ý) và người nhận sẽ cần phải chạy như một siêu người dùng (xem thêm --fake-supertùy chọn).

Để --groupmaptùy chọn có bất kỳ hiệu ứng nào, tùy chọn -g( --groups) phải được sử dụng (hoặc ngụ ý) và người nhận sẽ cần phải có quyền để đặt nhóm đó.


5
Tại sao -og bắt buộc? Nó có vẻ phi logic với tôi nhưng nó cũng được yêu cầu trên hệ thống của tôi.
Yai0Phah

4
@FrankScience Đồng ý, có vẻ phi logic. Câu hỏi tương tự đã được hỏi trong danh sách gửi thư rsync . "Tôi sẽ đề nghị rằng các tài liệu --chownsẽ làm tốt để đề cập đến điều đó --owner( --super) và --grouplà cần thiết" .
TachyonVortex

5

Phiên bản cuối cùng (ít nhất 3.1.1) của rsync cho phép bạn chỉ định "quyền sở hữu từ xa":

--usermap=tom:www-data

Thay đổi quyền sở hữu tom thành dữ liệu www (còn gọi là PHP / Nginx). Nếu bạn đang sử dụng Mac làm máy khách, hãy sử dụng brew để nâng cấp lên phiên bản cuối cùng. Và trên máy chủ của bạn, tải xuống các nguồn lưu trữ, sau đó "làm" nó!


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.