ฉันสามารถเปลี่ยนความเป็นเจ้าของไฟล์ทั้งหมดของผู้ใช้ที่เฉพาะเจาะจงได้หรือไม่?


9

มีวิธีในการค้นหาไฟล์ทั้งหมดที่เป็นของผู้ใช้ซ้ำและเปลี่ยนเป็นผู้ใช้ / กลุ่มอื่นใน Gnu / Linux หรือไม่?

ฉันคิดว่าต้องมีเวทย์มนตร์หนึ่งสายการบิน แต่ทักษะการใช้เวทมนตร์บรรทัดคำสั่งของฉันไม่ได้ขึ้นอยู่กับว่า :)

ขอบคุณ!

คำตอบ:


14

ใช้findคำสั่งพร้อม-userตัวเลือก สิ่งที่ต้องการ:

find / -user john

ในที่สุดจะเปิดไฟล์ทั้งหมดที่ผู้ใช้เป็นเจ้าของ "john"

หากคุณต้องการเปลี่ยนความเป็นเจ้าของ (ฉันจะเรียกใช้findโดยไม่ต้องดำเนินการเพื่อให้แน่ใจว่าคุณมีรายการที่คุณต้องการ) แล้วสิ่งที่ชอบ:

find / -user john -exec chown harry {} \;

จะทำมัน


1
ฉันมักจะใช้โพสต์และเรียกใช้chown harry:harryถ้าฉันต้องการให้แน่ใจว่าสมาชิกกลุ่มที่ถูกต้องเช่นกัน แต่นั่นขึ้นอยู่กับแอปพลิเคชันเป็นอย่างมากที่นี่
ewwhite

มันใช้งานไม่ได้จริง ๆ ถ้าฉันไม่ได้ใช้ UID โพสต์สามารถพบได้ใน / etc / passwd
222054

7

นี่สาย แต่วันนี้ฉันสะดุดคำถามนี้เพราะฉันrsyncไม่มี--usermapตัวเลือก

My chown(v. chown (GNU coreutils) 8.13) เสนอการชดเชยในตัว ( -R) และ--fromตัวเลือกเพื่อให้ปัญหา (และของฉัน) ของคุณได้รับการแก้ไขโดยใช้

chown -R --from=john harry /


โดยเฉพาะอย่างยิ่งฉันกำลังย้ายเซิร์ฟเวอร์จาก OpenSuse ไปยังเดเบียนและผู้ใช้และกลุ่ม apache2 แตกต่างกันระหว่างการกระจาย ใน OpenSuse ผู้ใช้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หนึ่งซับสำหรับฉันเป็นสุดท้ายก่อนที่จะทำสิ่งที่ตนเอง (นอกจากนี้ฉันเกลียดการเขียน{} \;แต่นี่เป็นเรื่องส่วนตัว)
Tomasz Gandor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.