โฟลเดอร์ / run / user / 1000 นี้คืออะไร?


84

โฟลเดอร์นี้คืออะไร: /run/user/1000ในระบบ Fedora ของฉันและจะทำอย่างไร?

~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.2G   20K  1.2G   1% /run/user/1000

แก้ไข: 7 มิถุนายน 2019

คำตอบสองข้อของฉันไม่เห็นด้วยกับไดเรกทอรีหรือไฟล์ที่จัดเก็บในสถานที่นี้:

แพทริค :

ก่อนหน้าsystemdนี้แอปพลิเคชันเหล่านี้มักจะเก็บไฟล์/tmpไว้

และอีกครั้งที่นี่:

/tmpเป็นตำแหน่งเดียวที่ระบุโดยFHSที่เป็นแบบโลคัลและสามารถเขียนได้โดยผู้ใช้ทั้งหมด

Braiam :

/var/runวัตถุประสงค์ของไดเรกทอรีนี้ถูกนำมาเสิร์ฟครั้งโดย โดยทั่วไปโปรแกรมอาจใช้งาน/var/runต่อไปเพื่อให้เป็นไปตามข้อกำหนดที่กำหนดไว้/runเพื่อจุดประสงค์ในการใช้งานร่วมกันได้ย้อนหลัง

และอีกครั้งที่นี่:

โปรแกรมที่ต้องอพยพไปใช้/runควรยุติการใช้ของพวกเขา ยกเว้นตามที่ระบุไว้ในส่วนที่เกี่ยวกับ/var/run/var/run

ดังนั้นเป็นที่หนึ่งที่ว่าเป็นพ่อของ/run/user/1000ทำไมมีการกล่าวถึงในคำตอบของสิ่งอื่น ๆ /run/userที่กล่าวเกี่ยวกับไดเรกทอรีที่ใช้อย่างใดอย่างหนึ่งก่อน


ไม่มีการพูดถึงในคำตอบของสิ่งที่คนอื่นพูดเกี่ยวกับไดเรกทอรีที่ใช้มาก่อน / รัน / ผู้ใช้เพราะมีเพียงคนเดียวที่พูดถึงเรื่องนี้ คำตอบของ Braiam พูดถึงไดเรกทอรีที่ใช้มาก่อน / รันแทนที่จะเป็น / run / user
David Yockey

1
คำตอบสำหรับคำถามของ "บิดาแห่ง / run / user / 1000" ถูกนำเสนอเป็นคำแถลงที่สมเหตุสมผล แต่ไม่ได้รับการยืนยันโดย Patrick Braiam ไม่ได้ตอบคำถามนี้ เป็นไปได้ว่าที่เก็บข้อมูลของไฟล์ที่ใช้โดยกระบวนการที่ทำงานเช่นไฟล์ชั่วคราวที่ผ่านมาสันนิษฐานว่าเป็นไดเรกทอรีมาตรฐาน / tmp ถ้าเป็นเช่นนั้นมันคงเป็นเรื่องยากที่จะยืนยันเพราะมีเพียงไม่กี่คนที่ให้บันทึกเป็นลายลักษณ์อักษรเกี่ยวกับการชุมนุม เพื่อให้คำตอบที่พิสูจน์แล้วอาจจะต้องมีการขุดร่วมกันในประวัติศาสตร์คอมพิวเตอร์
David Yockey

ขอบคุณสำหรับการป้อนข้อมูลของคุณ
somethingSomething

คำตอบ:


94

/run/user/$uidถูกสร้างโดยpam_systemdและใช้สำหรับการจัดเก็บไฟล์ที่ใช้โดยกระบวนการทำงานสำหรับผู้ใช้นั้น สิ่งเหล่านี้อาจเป็นสิ่งต่างๆเช่นภูตพวงกุญแจของคุณ pulseaudio เป็นต้น

ก่อนsystemdแอปพลิเคชันเหล่านี้มักจะเก็บไฟล์/tmpไว้ พวกเขาไม่สามารถใช้ตำแหน่งใน/home/$userเนื่องจากโฮมไดเร็กตอรี่มักจะเมาท์ผ่านระบบไฟล์ของเครือข่าย, และไฟล์เหล่านี้ไม่ควรใช้ร่วมกันระหว่างโฮสต์. /tmpเป็นตำแหน่งเดียวที่ระบุโดยFHSซึ่งเป็นแบบโลคัลและสามารถเขียนได้โดยผู้ใช้ทั้งหมด

อย่างไรก็ตามการจัดเก็บไฟล์เหล่านี้/tmpเป็นปัญหาเหมือน/tmpทุกคนสามารถเขียนได้และในขณะที่คุณสามารถเปลี่ยนความเป็นเจ้าของและโหมดในไฟล์ที่สร้างขึ้นมันยากที่จะทำงานด้วย

ดังนั้น systemd /run/user/$uidมาพร้อมและสร้าง ไดเร็กทอรีนี้เป็นโลคัลสำหรับระบบและเข้าถึงได้โดยผู้ใช้เป้าหมายเท่านั้น ดังนั้นแอปพลิเคชันที่ต้องการเก็บไฟล์ไว้ในเครื่องไม่ต้องกังวลกับการควบคุมการเข้าถึงอีกต่อไป
นอกจากนี้ยังช่วยรักษาสิ่งที่ดีและเป็นระเบียบ เมื่อผู้ใช้ออกจากระบบและไม่มีเซสชันที่ใช้งานอยู่pam_systemdจะลบ/run/user/$uidไดเรกทอรีออก ด้วยไฟล์ต่าง ๆ กระจัดกระจาย/tmpคุณไม่สามารถทำได้


18
ควรจะพูดถึงว่ามันจะเรียกว่า $ XDG_RUNTIME_DIR เอกสารที่standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c

จะเกิดอะไรขึ้นถ้าฉันเริ่มกระบวนการคำนวณ "พื้นหลัง" ด้วยnohupและจะบันทึกผลลัพธ์ / ข้อมูลขั้นกลางไว้ในไฟล์ชั่วคราว ฉันสามารถเชื่อใจได้ว่ามันไม่ได้ถูกเช็ดขณะที่กระบวนการกำลังทำงานอยู่หรือจะถูกลบออกและกระบวนการที่เริ่มต้นด้วยnohupจะทำให้ข้อมูลหลวมหรือไม่
imz - Ivan Zakharyaschev

ไม่น่าจะถูกลบทิ้ง แต่ / run / user เป็นระบบไฟล์ tmpfs ใน fedora ดังนั้นมันจะถูก จำกัด ตามจำนวนพื้นที่ที่จัดสรรให้ ดูเอาต์พุต df ด้านบน
jsbillings

จะทำอย่างไรถ้า pidfile เป็นบริการที่ทำงานภายใต้รูท PID ควรอยู่ภายใต้ / var / run หรือ / var / run / user / 0 หรือไม่ หากไม่มีเซสชันที่ใช้งานอยู่จะถูกลบออกหรือไม่
TSG

11

ตามแบบร่างล่าสุดของ FHS (มาตรฐานลำดับชั้นไฟล์) , / รัน:

ไดเร็กทอรีนี้มีข้อมูลระบบที่อธิบายถึงระบบตั้งแต่ถูกบูท ไฟล์ภายใต้ไดเรกทอรีนี้จะต้องล้าง (ลบหรือตัดทอนตามความเหมาะสม) ที่จุดเริ่มต้นของกระบวนการบูต

วัตถุประสงค์ของไดเรกทอรีนี้เคยให้บริการโดย / var / run โดยทั่วไปโปรแกรมอาจใช้ / var / run เพื่อดำเนินการตามข้อกำหนดที่กำหนดไว้สำหรับ / เรียกใช้เพื่อความเข้ากันได้ย้อนหลัง โปรแกรมที่ย้ายไปใช้ / รันควรหยุดการใช้งาน / var / run ยกเว้นตามที่ระบุไว้ในส่วนที่ / var / run

โปรแกรมอาจมีไดเรกทอรีย่อยของ / run; สิ่งนี้ได้รับการสนับสนุนสำหรับโปรแกรมที่ใช้ไฟล์รันไทม์มากกว่าหนึ่งไฟล์ ผู้ใช้อาจมีไดเร็กทอรีย่อย / รันแม้ว่าจะต้องระมัดระวังเพื่อ จำกัด สิทธิ์การเข้าถึงที่เหมาะสมเพื่อป้องกันการใช้ / รันเองและไดเร็กทอรีย่อยอื่นโดยไม่ได้รับอนุญาต

ในกรณีของ/run/userไดเรกทอรีจะถูกใช้โดยบริการผู้ใช้ที่แตกต่างกันเช่น dconf, pulse, systemd ฯลฯ ที่ต้องการสถานที่สำหรับล็อคไฟล์และซ็อกเก็ต มีไดเรกทอรีมากเท่ากับ UID ของผู้ใช้ที่แตกต่างกันเข้าสู่ระบบ

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