mktemp สร้างไฟล์ชั่วคราวในไดเรกทอรีที่ไม่มีสิทธิ์การเขียนใน Ubuntu อย่างไร


1

ฉันสังเกตเห็นว่าในอูบุนตู mktemp อนุญาตให้ผู้ใช้สร้างไฟล์ชั่วคราวในไดเรกทอรีแม้ว่าจะไม่ได้รับอนุญาตให้เขียนสำหรับผู้ใช้นั้น ฉันจึงคาดว่าสิทธิ์ mktemp จะอ่านสิ่งนี้ให้สิทธิ์ผู้ใช้รูทชั่วคราวขณะที่เรียกใช้:

-rwsr-xr-x 1 root root   35392 Nov 19  2012 mktemp

แต่พวกเขาอ่านบางสิ่งเช่นนี้แทน:

-rwxr-xr-x 1 root root   35392 Nov 19  2012 mktemp

ที่ฉันคิดว่ามี 's' มี 'x' หมายความว่า mktemp ไม่ทำงานด้วยสิทธิ์พิเศษของรูท mktemp สามารถสร้างไฟล์ชั่วคราวในไดเรกทอรีโดยไม่ได้รับอนุญาตได้อย่างไร

คำตอบ:


7

mktempโดยค่าเริ่มต้นจะสร้างไดเรกทอรีชั่วคราวภายใต้/tmpซึ่งโดยค่าเริ่มต้นจะเขียนได้โดยทุกคน หากคุณผ่าน--tmpdirตัวเลือกไปที่mktemp(หรือตั้งค่าTMPDIRตัวแปรสภาพแวดล้อม) มันจะพยายามสร้างไดเรกทอรีชั่วคราวในไดเรกทอรีที่กำหนดโดยอาร์กิวเมนต์ของตัวเลือกและสิ่งนั้นจะล้มเหลวเว้นแต่คุณจะได้รับอนุญาตให้เขียนในไดเรกทอรีที่กำหนด ตัวอย่างเช่น:

[me@box] $ mktemp
/tmp/tmp.sL1g7rRGQv
[me@box] $ mktemp --tmpdir=/root
mktemp: failed to create file via template `/tmp.XXXXXXXXXXX': Permission denied

หากคุณกำลังทำเช่นmktemp --tmpdir=/rootในฐานะผู้ใช้ที่ไม่ใช่รูทและมันไม่ได้ล้มเหลวมีบางอย่างแปลก ๆ เกิดขึ้น คุณแน่ใจหรือว่าเป็นสิ่งที่คุณเห็น


ฉันเพิ่งใช้ธงเริ่มต้น ฉันคิดว่ามันใส่ไฟล์ลงใน. / tmp ไม่ใช่ / tmp เพราะเห็นได้ชัดว่าฉันไม่ได้สนใจ ขอบคุณ!
MYV

ดีใจที่ได้รับความช่วยเหลือ!
แอรอนมิลเลอร์

5
จู้จี้จุกจิกเล็ก ๆ น้อย ๆ : IMHO /tmpได้มักจะเหนียวเล็กน้อย ( t) drwxrwxrwt root root 0 May 24 23:52 /tmpตั้ง: I. e. ทุกคนสามารถสร้างไฟล์ / dirs ในนั้น แต่ไม่สามารถลบ / เปลี่ยนชื่อไฟล์ที่เป็นของคนอื่น - แม้จะเป็นอย่างเป็นทางการlsเขียนทับได้ตามที่ระบุโดย สำหรับข้อมูลเพิ่มเติมดูเช่นen.wikipedia.org/wiki/Sticky_bit
mpy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.