ปัญหาคำสั่ง Rsync สิทธิ์การเป็นเจ้าของและกลุ่มไม่เปลี่ยนแปลง


28

ฉันกำลังพยายามตั้งเจ้าของและกลุ่มผ่านrsyncและดูเหมือนจะไม่ทำงาน

นี่คือคำสั่ง:

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

ไฟล์ซิงค์อย่างถูกต้อง แต่ดูเหมือนจะไม่เปลี่ยนเจ้าของและกลุ่ม

คำตอบ:


14

ดูเหมือนว่าทำงานอย่างถูกต้อง ใช้--ownerและ--groupเพื่อรักษา (ไม่ได้ตั้งค่า) ชื่อเจ้าของและกลุ่ม ... หมายความว่าคุณไม่ต้องการให้เปลี่ยนหลังจากการถ่ายโอน

หากคุณไม่ได้ใช้ตัวเลือกเหล่านี้ผู้ใช้และกลุ่มจะถูกเปลี่ยนเป็นผู้ใช้ที่เรียกใช้เมื่อสิ้นสุดการรับ หากคุณต้องการระบุผู้ใช้รายอื่นคุณจะต้องเพิ่มchownคำสั่งในสคริปต์ของคุณ

-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...

man rsync


1
ดังนั้นฉันจะ chown ผู้ใช้และกลุ่ม remotly ได้อย่างไร ผ่าน ssh? คุณกรุณาบอกฉันได้อย่างไร ฉันมี acces รูทสำหรับเซิร์ฟเวอร์ทั้งสอง ฉันไม่ต้องการใช้กุญแจ ssh แต่บอกตัวเลือกทั้งหมดที่คุณรู้ฉันจะขอบคุณมัน ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว
Arnoldo Bazaldua

คำสั่งจะมีลักษณะดังนี้: ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166

ฉันลองใช้ แต่ไม่ได้ผลเจ้าของและผู้ใช้เหมือนกัน หลังจากสั่งมันก็บอกว่า: stdin: ไม่ใช่ TTY
Arnoldo Bazaldua

ใช้งานได้แล้วปัญหาไฟร์วอลล์ ตอนนี้ฉันต้องป้อนรหัสผ่านอัตโนมัติสำหรับ ssh และ rsync โดยอัตโนมัติ
Arnoldo Bazaldua

ฉันจะโพสต์สิ่งนี้ในคำถามอื่น ๆ ขอบคุณสำหรับความช่วยเหลือของคุณ
Arnoldo Bazaldua

61

เวอร์ชั่น 3.1.0ของ rsync ได้นำเสนอ--usermapและ--groupmapกล่าวถึงโดย Thomas แต่ยังเป็นตัวเลือกความสะดวกสบาย--chownซึ่งทำงานได้ดีกับสถานการณ์ของคุณ

--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.

นอกจากนี้ยังจำเป็นต้องใช้-oและ-gตัวเลือก หากไม่รวมพวกเขาจะไม่สามารถอัปเดตแอตทริบิวต์ที่เกี่ยวข้องได้ แต่จะไม่มีข้อผิดพลาดเกิดขึ้น

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

สิ่งนี้ถูกกล่าวถึงทางอ้อมในmanpageซึ่งระบุว่า--chownตัวเลือก "ถูกนำไปใช้งานโดยใช้--usermapและ--groupmapภายใน" และ:

เพื่อให้--usermapตัวเลือกมีผลกระทบต้องใช้ตัวเลือก-o( --owner) (หรือโดยนัย) และผู้รับจะต้องใช้งานเป็นผู้ใช้ขั้นสูง (ดูเพิ่มเติมที่--fake-superตัวเลือก)

เพื่อให้--groupmapตัวเลือกมีผลกระทบต้องใช้ตัวเลือก-g( --groups) (หรือโดยนัย) และผู้รับจะต้องมีสิทธิ์ในการตั้งค่ากลุ่มนั้น


5
ทำไมต้องใช้ -og ดูเหมือนว่าฉันจะไร้เหตุผล แต่ก็เป็นสิ่งจำเป็นสำหรับระบบของฉันด้วย
Yai0Phah

4
@ FrankScience เห็นด้วยดูเหมือนไร้เหตุผล คำถามเดียวกันถูกถามเกี่ยวกับ rsync รายการทางไปรษณีย์ "ผมขอแนะนำว่าเอกสารสำหรับ--chownจะทำดีพูดถึงว่า--owner( --super) และ--groupมีความจำเป็น"
TachyonVortex

5

เวอร์ชันล่าสุด (อย่างน้อย 3.1.1) ของ rsync ช่วยให้คุณระบุ "การเป็นเจ้าของระยะไกล":

--usermap=tom:www-data

เปลี่ยนทอมเป็นเจ้าของ www-data (aka PHP / Nginx) หากคุณใช้ Mac เป็นไคลเอนต์ให้ใช้ชงเพื่ออัปเกรดเป็นเวอร์ชันล่าสุด และบนเซิร์ฟเวอร์ของคุณดาวน์โหลดแหล่งข้อมูลที่เก็บถาวรจากนั้น "ทำ"


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.