Thư mục này / run / user / 1000 là gì?


84

Thư mục này là gì: /run/user/1000trên hệ thống Fedora của tôi và nó làm gì?

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

EDIT: 7 tháng 6 năm 2019.

Hai câu trả lời của tôi không đồng ý về thư mục nào hoặc nơi các tệp được lưu trữ ở nơi này là:

Patrick :

Trước đó systemd, các ứng dụng này thường lưu trữ tệp của họ trong /tmp.

Và một lần nữa ở đây:

/tmplà vị trí duy nhất được chỉ định bởi FHSđịa phương và có thể ghi được bởi tất cả người dùng.

Bà mẹ :

Mục đích của thư mục này đã từng được phục vụ bởi /var/run. Nói chung, các chương trình có thể tiếp tục sử dụng /var/runđể đáp ứng các yêu cầu đặt ra /runcho các mục đích tương thích ngược.

Và một lần nữa ở đây:

Các chương trình đã di chuyển để sử dụng /runnên ngừng sử dụng /var/run, trừ khi được ghi chú trong phần trên /var/run.

Vì vậy, cái nào là cha đẻ của nó /run/user/1000, tại sao không có đề cập nào trong câu trả lời của người kia nói về thư mục được sử dụng trước đó /run/user.


Không có đề cập nào trong câu trả lời về những gì người khác nói về thư mục được sử dụng trước / run / user vì chỉ có một người thực sự thảo luận về điều này. Câu trả lời của Braiam thảo luận về thư mục được sử dụng trước / run thay vì / run / user.
David Y Racer

1
Một câu trả lời cho câu hỏi "cha đẻ của / run / user / 1000" được trình bày dưới dạng một tuyên bố hợp lý nhưng không có căn cứ của Patrick. Braiam không giải quyết câu hỏi này. Có khả năng vị trí lưu trữ của các tệp được sử dụng bởi các quy trình đang chạy, tức là các tệp tạm thời, trước đây chỉ được coi là thư mục chuẩn / tmp. Nếu vậy, thật khó để chứng minh vì ít người cung cấp hồ sơ bằng văn bản về thông thường hoặc rõ ràng. Để cung cấp một câu trả lời rõ ràng có lẽ sẽ cần một số hoạt động đào sâu vào lịch sử máy tính.
David Y Racer

Cảm ơn bạn đã đóng góp của bạn
một cái gì đó

Câu trả lời:


94

/run/user/$uidđược tạo bởi pam_systemdvà được sử dụng để lưu trữ các tệp được sử dụng bởi các quy trình đang chạy cho người dùng đó. Đây có thể là những thứ như daemon keyring của bạn, pulseaudio, v.v.

Trước systemd , các ứng dụng này thường lưu trữ tệp của chúng trong /tmp. Họ không thể sử dụng một vị trí trong các /home/$userthư mục nhà thường được gắn trên các hệ thống tệp mạng và các tệp này không nên được chia sẻ giữa các máy chủ. /tmplà vị trí duy nhất được chỉ định bởi FHS là địa phương và có thể ghi được bởi tất cả người dùng.

Tuy nhiên, việc lưu trữ tất cả các tệp /tmpnày là có vấn đề vì /tmpmọi người đều có thể ghi được và trong khi bạn có thể thay đổi quyền sở hữu & chế độ trên các tệp được tạo, thì việc xử lý sẽ khó khăn hơn.

Vì vậy, systemd đã xuất hiện và tạo ra /run/user/$uid. Thư mục này là cục bộ của hệ thống và chỉ có thể truy cập bởi người dùng mục tiêu. Vì vậy, các ứng dụng đang tìm cách lưu trữ tệp của họ cục bộ không còn phải lo lắng về kiểm soát truy cập.
Nó cũng giữ cho mọi thứ tốt đẹp và có tổ chức. Khi người dùng đăng xuất và không còn phiên hoạt động, pam_systemdsẽ xóa /run/user/$uidthư mục. Với các tệp khác nhau nằm rải rác xung quanh /tmp, bạn không thể làm điều này.


18
Nên đề cập rằng nó được gọi là $ XDG_RUNTIME_DIR, được ghi lại theo tiêu
chuẩn.freedesktop.org/basingir

Điều gì xảy ra nếu: Tôi đã bắt đầu quá trình tính toán "nền" nohupvà nó lưu kết quả / dữ liệu trung gian của nó trong tệp tạm thời. Tôi có thể tin tưởng vào việc nó không bị xóa trong khi tiến trình đang chạy hay nó sẽ bị xóa và quá trình bắt đầu nohupsẽ làm mất dữ liệu của nó?
imz - Ivan Zakharyaschev

Nó không có khả năng bị xóa, nhưng / run / user là một hệ thống tập tin tmpfs trong fedora, vì vậy nó sẽ bị giới hạn trong dung lượng được phân bổ cho nó. Xem đầu ra df ở trên.
jsbillings 04/07/2015

Điều gì xảy ra nếu pidfile là một dịch vụ chạy dưới quyền root. Nó có nên đi theo / var / run hoặc / var / run / user / 0 không? Nếu không có phiên hoạt động thì nó sẽ bị xóa?
TSG

11

Theo dự thảo mới nhất của FHS (Tiêu chuẩn phân cấp tệp) , / run:

Thư mục này chứa dữ liệu thông tin hệ thống mô tả hệ thống kể từ khi nó được khởi động. Các tập tin trong thư mục này phải được xóa (loại bỏ hoặc cắt bớt khi thích hợp) khi bắt đầu quá trình khởi động.

Mục đích của thư mục này đã từng được phục vụ bởi / var / run. Nói chung, các chương trình có thể tiếp tục sử dụng / var / run để đáp ứng các yêu cầu đặt ra cho / chạy cho mục đích tương thích ngược. Các chương trình đã di chuyển sang sử dụng / chạy sẽ ngừng sử dụng / var / run, trừ khi được ghi chú trong phần trên / var / run.

Các chương trình có thể có thư mục con / chạy; điều này được khuyến khích cho các chương trình sử dụng nhiều hơn một tệp thời gian chạy. Người dùng cũng có thể có thư mục con / chạy, mặc dù phải cẩn thận để hạn chế quyền truy cập để ngăn chặn việc sử dụng trái phép / chạy chính nó và các thư mục con khác.

Trong trường hợp của /run/userthư mục, được sử dụng bởi các dịch vụ người dùng khác nhau, như dconf, xung, systemd, v.v. cần một vị trí cho các tệp khóa và ổ cắm của họ. Có nhiều thư mục như những người dùng khác nhau của UID được đăng nhập vào hệ thống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.