rsync đặt chủ sở hữu nhóm, cho phép nhóm


10

Tôi muốn sử dụng rsync để truyền tệp từ máy tính của mình sang hệ thống Linux từ xa. Bất kể quyền sở hữu nhóm của tệp cục bộ, tôi muốn đặt các giá trị này ở phía xa.

Nếu tôi ở trên hệ thống Linux từ xa, tôi có thể tạo thư mục và đặt quyền sở hữu cũng như quyền:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

Nếu tôi tạo thư mục cục bộ và sau đó sử dụng rsync (hãy nhớ rằng tôi không có my_group cục bộ), tôi sẽ:

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

Điều đó hoạt động, nhưng tôi không thể tìm ra cách đặt chủ sở hữu nhóm thông qua rsync. Nếu tôi làm một chmod g+s dest, my_directory có chủ sở hữu nhóm chính xác nhưng tất cả các tệp bên trong có chủ sở hữu nhóm không chính xác.


Xin chào @ChrisInEd hôm nay, bạn đã tìm ra cách để thực hiện công việc này cuối cùng chưa? Bây giờ tôi gặp phải vấn đề tương tự, tôi đang chạy cygwin để gửi các tệp rsync từ windows sang hộp linux nhưng không thể đặt id nhóm chính xác của các tệp mới được gửi qua: rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/Các tệp nằm dưới dạng john: john thay vì john: projx ( trong đó projx là tên của nhóm)
John

1
Tôi vừa tìm thấy rsync 3.1 bao gồm --groupmap=*:group-name'.. ngay sau khi tôi đăng ha.
Giăng

Câu trả lời:


8

Ngay lúc này, tôi đang tìm cách để thực hiện điều này trong hoạt động rsync, trái ngược với hoạt động tiếp theo. Tôi muốn một số tệp không thể đọc được trên thế giới và chỉ định một nhóm, do đó hạn chế quyền truy cập vào các quy trình máy chủ từ xa trong nhóm đó. Nhưng tôi chưa tìm thấy.

Điều duy nhất tôi có thể tưởng tượng là:

  1. sử dụng --delay-update để đặt các tệp từ xa vào một thao tác tức thời, nguyên tử hơn
  2. g + rwx, o + rwx trong tùy chọn rsync --chmod

và sau đó chạy:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

Vâng, tôi nghĩ đó là những gì chúng ta sẽ làm. Tôi ngạc nhiên không có cách nào mà bạn hoặc tôi có thể tìm thấy để làm điều này chỉ với rsync, nhưng này.
ChrisInEd hôm 17/03/2016

6

Tôi nghĩ rằng cờ -p bị thiếu trong lệnh của bạn ..

--chod

Tùy chọn này yêu cầu rsync áp dụng một hoặc nhiều chuỗi "chmod" được phân tách bằng dấu phẩy cho phép các tệp trong quá trình chuyển. Giá trị kết quả được xử lý như thể đó là các quyền mà phía gửi được cung cấp cho tệp, điều đó có nghĩa là tùy chọn này dường như không có tác dụng đối với các tệp hiện có nếu --perms không được bật .


1
Các -pcờ được ngầm bao gồm như là một phần của -atùy chọn (lưu trữ).
Anthony Geoghegan
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.