Debian Jessie 시스템에서:
$ ls -al ~/.gnupg/
total 58684
drwx------ 2 username username 4096 Nov 28 20:52 .
drwxr-xr-x 50 username username 4096 Nov 28 19:33 ..
-rw------- 1 username username 9602 Jun 24 22:47 gpg.conf
-rw-r--r-- 1 username username 18 Jun 25 21:07 .#lk0xb7f2fa50.hostname.5551
-rw-r--r-- 1 username username 18 Aug 19 19:15 .#lk0xb8e9bf48.hostname.32133
-rw-r--r-- 1 username username 18 Aug 19 19:15 .#lk0xb8e9dc48.hostname.32133
-rw-r--r-- 1 username username 18 Nov 28 20:52 .#lk0xb9387478.hostname.24497
-rw------- 1 username username 30018875 Nov 18 21:49 pubring.gpg
-rw------- 1 username username 30018875 Nov 18 20:54 pubring.gpg~
-rw------- 1 username username 600 Jun 21 21:34 random_seed
-rw------- 1 username username 4890 May 7 2015 secring.gpg
-rw------- 1 username username 1440 Nov 18 18:50 trustdb.gpg
username
실제 사용자 이름을 로 , 실제 호스트 이름을 로 바꾸었습니다 hostname
.
이름이 로 시작하는 파일의 출처/목적은 무엇입니까 .#lk0xb
?
답변1
그들은 ("lk"에서 알 수 있듯이)잠그다문서. gnupg 소스의 주석은 다음과 같습니다.
FILE_TO_LOCK
이 함수는 이 이름과 접미사 ".lock"을 사용하여 동일한 디렉터리에 잠금 파일을 생성합니다. POSIX 시스템에서는 임시 파일이".#lk..pid[.threadid]사용된.
그리고 정리 기능(오래된 잠금 장치 제거)도 있다고 명시되어 있습니다. 정리 기능이 실패한 나머지 잠긴 파일이 표시됩니다.
이것PID그리고스레드 ID코드의 이전 주석과 일치하지 않습니다(주석이 업데이트되지 않은 것으로 나타납니다). 파일 이름이 주석과 다르게 보이도록 하는 실제 코드(gnupg-1.4.19에서 인용):
snprintf (h->tname, tnamelen, "%.*s/.#lk%p.", dirpartlen, dirpart, h );
h->nodename_off = strlen (h->tname);
snprintf (h->tname+h->nodename_off, tnamelen - h->nodename_off,
"%s.%d", nodename, (int)getpid ());
물론 코드는 주석보다 더 관련성이 높습니다.