เรามีสภาพแวดล้อมของผู้ใช้ไม่กี่พันคนที่ใช้งานแอพพลิเคชั่นบนเครือข่ายประมาณ 40 กลุ่มตั้งแต่ขนาด 20 โหนดไปจนถึง 98,000 โหนด ผู้ใช้ในระบบเหล่านี้สร้างไฟล์ขนาดใหญ่ (บางครั้ง> 1PB) ควบคุมโดยสิทธิ์ unix แบบดั้งเดิม (โดยทั่วไปจะไม่สามารถใช้งานหรือใช้งานได้จริงเนื่องจากลักษณะเฉพาะของระบบไฟล์)
ขณะนี้เรามีโปรแกรมที่เรียกว่า "ให้" ซึ่งเป็นโปรแกรม suid-root ที่อนุญาตให้ผู้ใช้ "มอบ" ไฟล์ให้กับผู้ใช้รายอื่นเมื่อสิทธิ์กลุ่มไม่เพียงพอ ดังนั้นผู้ใช้จะพิมพ์สิ่งต่อไปนี้เพื่อให้ไฟล์แก่ผู้ใช้รายอื่น:
> give username-to-give-to filename-to-give ...
ผู้ใช้ที่ได้รับจากนั้นสามารถใช้คำสั่งที่เรียกว่า "ใช้" (ส่วนหนึ่งของโปรแกรมให้) เพื่อรับไฟล์:
> take filename-to-receive
สิทธิ์ของไฟล์จะถูกถ่ายโอนไปยังผู้ใช้ที่ได้รับอย่างมีประสิทธิภาพ
โปรแกรมนี้มีมานานหลายปีและเราต้องการที่จะทบทวนสิ่งต่าง ๆ จากมุมมองด้านความปลอดภัยและการใช้งาน
แผนปฏิบัติการปัจจุบันของเราคือการลบบิตเน่าในการดำเนินการ "ให้" ปัจจุบันของเราและบรรจุมันเป็นแอพโอเพนซอร์ซก่อนที่เราจะนำมันไปใช้ในการผลิตอีกครั้ง
ใครบ้างมีวิธีอื่นที่พวกเขาใช้ในการถ่ายโอนไฟล์ที่มีขนาดใหญ่มากระหว่างผู้ใช้เมื่อมีสิทธิ์ unix แบบดั้งเดิมเท่านั้นที่สามารถใช้ได้?
chown
ควรทำ .. ดูเหมือนคุณต้องการคัดลอกไฟล์เมื่อทั้งสองฝ่ายได้ตกลงกัน