XDG_RUNTIME_DIR là một thư mục được dùng bởi rất nhiều phần mềm và dịch vụ ngầm trên Linux.
Thường thì thư mục này sẽ nằm ở /run/user/1000.
Nếu XDG_RUNTIME_DIR chưa được thiết lập đúng (chưa tồn tại, chưa thuộc quyền sở hữu của người dùng,...) thì một số phần mềm sẽ không thể khởi chạy, chẳng hạn như Pipewire, DBus,...
Cài đặt
Ở đây mình sẽ dùng pam_rundir để tự động hóa hai việc sau:
- Tạo thư mục XDG_RUNTIME_DIR khi đăng nhập.
- Xóa thư mục XDG_RUNTIME_DIR khi đăng xuất.
Vì thư mục này đôi lúc chứa những file bảo mật, việc xóa đi khi không dùng nữa là cần thiết!
Dùng lệnh sau để cài đặt pam_rundir.
xbps-install -S pam_rundir
Thiết lập PAM
Thêm dòng dưới đây vào cuối phần session của file /etc/pam.d/login:
-session optional pam_rundir.so
File /etc/pam.d/login lúc này sẽ trông như sau:
#%PAM-1.0
auth required pam_securetty.so
auth requisite pam_nologin.so
auth include system-local-login
account include system-local-login
session include system-local-login
-session optional pam_rundir.so
Thành quả
Sau khi khởi động lại máy và đăng nhập, hãy thử đến thư mục XDG_RUNTIME_DIR bằng lệnh sau:
cd "$XDG_RUNTIME_DIR"
Nguồn
Mình biết đến pam_rundir qua bình luận này trên Reddit.
Bạn cũng có thể tìm hiểu thêm về XDG_RUNTIME_DIR trên Void Linux qua bài viết này