ฉันมีไฟล์ปฏิบัติการ (สร้างจากโค้ดไพธอน) ซึ่งฉันต้องการมันเพื่อเข้าถึงไฟล์ที่ฉันสร้างขึ้น รวมถึงไฟล์ที่สร้างโดยบุคคลที่เรียกใช้ไฟล์ปฏิบัติการ
ฉัน ไม่อนุญาตให้เปลี่ยนสิทธิ์ ของไฟล์.
นี่คือตัวอย่าง:
user1 เป็นเจ้าของไฟล์ปฏิบัติการและ user1_file
user2 เป็นเจ้าของ user2_file
คาดว่า user2 จะเรียกใช้งานไฟล์ปฏิบัติการได้
>>> ls -อัล
drwxr-xr-x 12 user1 group1 4096 2 ม.ค. 13:48 เรียกใช้งานได้
-rw------- 1 user1 group1 272 ก.พ. 57 14:32 น. user1_file
-rw------- 1 user2 group2 272 ก.พ. 57 14:32 น. user2_file
นี่คือสิ่งที่ฉันได้ลอง
- ทำงานโดยตรงในฐานะ user2:
มันล้มเหลวเพราะเขาไม่มีสิทธิ์อ่าน user1_file
- ตั้งค่า suid สำหรับปฏิบัติการแล้วเรียกใช้ในฐานะ user2:
มันอ่าน user1_file ได้สำเร็จ แต่ไม่สามารถอ่าน user2_file ได้
- อัปเดตรหัสหลามเพื่อดำเนินการ
os.system('chmod u-s ปฏิบัติการ')
ก่อนเข้าถึง user2_file:
ไม่อนุญาตให้ดำเนินการนี้แม้ว่าจะได้รับอนุญาต แต่ฉันก็ยังกังวลเกี่ยวกับวิธีการเพิ่ม suid ใหม่ในขณะที่โปรแกรมทำงานด้วยสิทธิ์ user2
มีวิธีใดบ้างที่จะอนุญาตทั้งสิทธิ์ user1 และ user2 สำหรับการเรียกทำงาน
หรืออาจเป็นวิธีหยุดการอนุญาต user1 ชั่วคราว