มีวิธีในการค้นหาไฟล์ทั้งหมดที่เป็นของผู้ใช้ซ้ำและเปลี่ยนเป็นผู้ใช้ / กลุ่มอื่นใน Gnu / Linux หรือไม่?
ฉันคิดว่าต้องมีเวทย์มนตร์หนึ่งสายการบิน แต่ทักษะการใช้เวทมนตร์บรรทัดคำสั่งของฉันไม่ได้ขึ้นอยู่กับว่า :)
ขอบคุณ!
มีวิธีในการค้นหาไฟล์ทั้งหมดที่เป็นของผู้ใช้ซ้ำและเปลี่ยนเป็นผู้ใช้ / กลุ่มอื่นใน Gnu / Linux หรือไม่?
ฉันคิดว่าต้องมีเวทย์มนตร์หนึ่งสายการบิน แต่ทักษะการใช้เวทมนตร์บรรทัดคำสั่งของฉันไม่ได้ขึ้นอยู่กับว่า :)
ขอบคุณ!
คำตอบ:
ใช้find
คำสั่งพร้อม-user
ตัวเลือก สิ่งที่ต้องการ:
find / -user john
ในที่สุดจะเปิดไฟล์ทั้งหมดที่ผู้ใช้เป็นเจ้าของ "john"
หากคุณต้องการเปลี่ยนความเป็นเจ้าของ (ฉันจะเรียกใช้find
โดยไม่ต้องดำเนินการเพื่อให้แน่ใจว่าคุณมีรายการที่คุณต้องการ) แล้วสิ่งที่ชอบ:
find / -user john -exec chown harry {} \;
จะทำมัน
นี่สาย แต่วันนี้ฉันสะดุดคำถามนี้เพราะฉันrsync
ไม่มี--usermap
ตัวเลือก
My chown
(v. chown (GNU coreutils) 8.13) เสนอการชดเชยในตัว ( -R
) และ--from
ตัวเลือกเพื่อให้ปัญหา (และของฉัน) ของคุณได้รับการแก้ไขโดยใช้
chown -R --from=john harry /
wwwrun (id:30)
และกลุ่มเป็นwww (id:8)
เดเบียนwww-data (id: 33)
สำหรับทั้งสอง หลังจากที่ฉันคัดลอกไฟล์โดยใช้
rsync -az /path/to/files me@debian:/path/to/
ฉันใช้
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
บนเครื่องเป้าหมาย (debian)
หมายเหตุ: rsync version 3.1.0 protocol version 31
มีการกล่าวถึงข้างต้น--usermap
ดังนั้นถ้าฉันมีที่ฉันสามารถทำได้ทั้งสามขั้นตอนด้วยคำสั่งเดียวบนเครื่องต้นทาง:
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/
find -exec
หนึ่งซับสำหรับฉันเป็นสุดท้ายก่อนที่จะทำสิ่งที่ตนเอง (นอกจากนี้ฉันเกลียดการเขียน{} \;
แต่นี่เป็นเรื่องส่วนตัว)
chown harry:harry
ถ้าฉันต้องการให้แน่ใจว่าสมาชิกกลุ่มที่ถูกต้องเช่นกัน แต่นั่นขึ้นอยู่กับแอปพลิเคชันเป็นอย่างมากที่นี่