아래 하위 디렉터리에 일부 Unix 소켓 파일을 저장합니다.$XDG_RUNTIME_DIR. 문서에서 다음을 읽을 수 있습니다.
이 디렉터리의 파일은 정기적으로 정리해야 할 수 있습니다. 파일이 삭제되지 않도록 하려면 파일의 액세스 시간 타임스탬프를 최소한 6시간마다 수정하거나 파일에 "고정" 비트를 설정해야 합니다.
주기적인 정리를 피하기 위해 각 소켓 파일에 고정 비트를 설정해야 하는지, 아니면 모든 소켓 파일을 저장하는 하위 디렉터리에 고정 비트를 설정하는 것으로 충분한지 궁금합니다.
답변1
부분XDG 기본 디렉토리 사양고정 비트 설정에 대해 인용하셨습니다.파일에:
이 디렉터리의 파일은 정기적으로 정리해야 할 수 있습니다. 파일이 삭제되지 않도록 하려면 파일의 액세스 시간 타임스탬프를 최소한 6단조 시간마다 수정하거나 "고정" 비트를 설정해야 합니다.파일에.
여기의 사양은 약간 모호합니다.문서의미할 수 있다파일 시스템 엔터티당,디렉터리가 아닌 파일 시스템 엔터티또는일반 파일상황에 따라 다릅니다. 그러나 디렉터리의 고정 비트는 Linux에 특별한 영향을 미치며 디렉터리에서 사용될 때 이름이 다르게 지정되기도 합니다.chmod(1) 맨페이지:
제한된 제거 플래그 또는 고정 비트는 파일 형식에 따라 해석이 달라지는 단일 비트입니다. 디렉터리의 경우 권한이 없는 사용자가 파일이나 디렉터리를 소유하지 않는 한 디렉터리에서 파일을 삭제하거나 이름을 바꾸는 것을 방지합니다. 이를 디렉터리의 삭제 제한 플래그라고 하며 일반적으로 /tmp와 같은 누구나 쓸 수 있는 디렉터리에서 찾을 수 있습니다.
그러므로 가정하는 것이 타당하다.문서XDG 문서에서 이 맥락은 다음을 의미합니다.디렉터리가 아닌 파일 시스템 엔터티.
그러나 사양이 완전히 명확하지 않기 때문에 배포판의 정리 메커니즘 구현에 따라 달라집니다. 적어도 Fedora와 Linux Mint에는 현재 이러한 예정된 정리가 없는 것처럼 보이지만 이는 향후 변경될 수 있고 배포판이 사양의 이 부분을 어떻게 해석할지 알 수 없으므로 설정하는 것이 더 안전합니다. 제외된 각 파일/소켓의 예약된 정리에서 제거하려는 경우.
편집하다: systemd
다음을 기반으로 한 분포 의 경우pam_systemd
$XDG_RUNTIME_DIR 관리를 담당합니다. 현재는 첫 번째 로그인 시 생성만 수행되고 마지막 로그아웃 시 삭제가 수행됩니다. 소켓은 $XDG_RUNTIME_DIR의 하위 디렉터리 에도 systemd
생성되며 고정 비트는 아무 것도 설정되지 않습니다. 이는 적어도 systemd
기본 배포판이 아직 정기적인 정리를 구현하지 않았음을 강력하게 시사합니다.
답변2
끈끈한 비트는 디렉토리가 아닌 파일에는 아무런 영향을 미치지 않기 때문에 정리를 수행하는 프로그램의 문제라고 생각합니다.
프로그램이 이러한 파일을 무시하도록 지시하려면 고정 비트를 사용해야 합니다. 따라서 문서에서 알 수 없는 경우 다음을 수행해야 합니다.
- 어떤 프로그램이 청소를 수행하고 있는지 찾아 소스 코드를 읽어보세요.
- 실험을 해보세요. 몇 개의 파일/소켓을 디렉토리에 넣고 일부는 고정 비트가 설정되어 있고 일부는 설정되지 않은 상태로 어떤 일이 일어나는지 확인하세요. (더미 파일 사용: 어떤 목적으로도 사용되지 않는 파일입니다.)