ฉันจะเมาท์ tmpfs ไปที่ / tmp ผ่าน fstab เขียนได้ทุกคนได้อย่างไร


2

ฉันต้องการติดตั้ง tmpfs /tmp และทำให้ผู้ใช้สามารถเขียนได้ (หรือผู้ใช้เฉพาะ) ตัวเครื่องเป็น Raspberry Pi 3 ที่มี Debian 8.0 (Raspian) อะไรก็ตามที่ฉันพยายาม /tmp ถูกเมานท์เสมอด้วยการอนุญาตเท่านั้น root.

ฉันได้ลองทำสิ่งต่อไปนี้แล้ว fstab รายการ:

tmpfs           /tmp            tmpfs   nosuid,nodev,noatime   0       0
tmpfs           /tmp            tmpfs   nosuid,nodev,noatime,user,uid=1000,gid=1001,mode=1777   0       0

ซึ่งจะส่งผลให้สิทธิ์ต่อไปนี้เสมอ:

$ ls -alh /tmp
total 36K
drwxr-xr-x 14 root  root   500 Jul 19 10:17 .

แต่ถ้าฉันเมาน tmpfs ไปยังตำแหน่งอื่นแทน /tmp (เช่น. /var/opt ) สามารถเขียนได้กับทุกคน:

$ ls -alh /var/opt
total 4.0K
drwxrwxrwt  2 root root   40 Jul  3 12:18 .

ฉันจะเมาน tmpfs ได้อย่างไร /tmp เพื่อให้ทุกคนเขียนได้?

ผลผลิตของ mount:

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime)
tmpfs on /var/opt type tmpfs (rw,nosuid,nodev,relatime)

หากเมานต์ด้วยตัวเลือก uid, gid และ mode ทั้งหมด:

tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noexec,noatime,uid=1000,gid=1001)

แก้ไข: บริการ Linux ใด ๆ ตั้งค่าการอนุญาตเป็น 755 ใน /tmp ไดเรกทอรีในการบูต? เนื่องจากสิทธิ์เหล่านี้ถูกตั้งค่าแม้ว่าฉันเพิ่งจะเชื่อมโยง /tmp ไปยัง /var/optซึ่งโดยตัวของมันเองนั้นเขียนได้สำหรับทุกคน หลังจากบูทด้วย symlink จาก /tmp ไปยัง /var/optสิทธิ์ในการ /var/opt ถูกตั้งค่าเป็น 755

คำตอบ:


1

การตั้งค่า tmpfs ของฉันคือ:

tmpfs           /tmp            tmpfs   rw,mode=1777,size=12g

การปรับขนาดสำหรับระบบที่มีหน่วยความจำมากกว่าและมีการสลับที่คุณน่าจะมี noatime หรือ relatime ไม่ควรเป็นเรื่องสำคัญเนื่องจาก inodes จะเป็นโครงสร้างหน่วยความจำและไม่น่าจะเขียนลงดิสก์ได้ tmpfs ถูกเพจเอาต์เพื่อสลับหากจำเป็น

การอนุญาต 755 วันที่ /tmp น่าจะเป็นสิทธิ์เริ่มต้นบนจุดเชื่อมต่อ การอนุญาตแบบดั้งเดิมคือ 1777 อนุญาตให้ทุกคนสร้างไฟล์ได้ แต่การรักษาความปลอดภัยจากการจัดการโดยผู้ใช้รายอื่น


1

ต้นฉบับของคุณ /etc/fstab บรรทัดถูกต้อง:

tmpfs /tmp tmpfs nosuid,nodev,noatime 0 0

สำหรับ symlink ไป /tmpเช่น /var/spool, /var/tmpและบางที /var/opt (ไม่แน่ใจ) ลบ symlink แทนที่ด้วยไดเรกทอรีว่างและเพิ่มบรรทัดใหม่ /etc/fstab ซึ่งสร้างการเมานท์อื่นเช่น:

tmpfs /var/spool tmpfs  defaults,noatime,nosuid,nodev,noexec,mode=0755,size=64M 0 0

หากต้องการค้นหา symlink ทั้งหมด:

sudo find / -lname '/tmp*' 2>/dev/null

เหตุผลที่จำเป็นนี้ก็คือในตอนบูตสิทธิ์ในบางไดเรกทอรีเช่น /var/spool มีการเปลี่ยนแปลงและ chmod บน symlink จะเปลี่ยนไดเรกทอรีเป้าหมาย

ดูสิ่งนี้ด้วย ทำไม / tmp ถูกเมาท์ด้วยสิทธิ์ 0755 เมื่อ fstab มี 1777

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.