숨겨지지 않은 디렉토리는 탐색기에 표시되지 않지만 디렉토리를 만든 프로그램은 디렉토리에 액세스 할 수 있습니다


26

사서함을 백업하기 위해 IMAPSize 를 사용하고 있습니다. 이 프로세스는 사서함의 내용을 .eml디스크의 파일 로 덤프합니다 . 어쨌든 백업 한 첫 번째 사서함이 예상대로 표시됩니다. 그러나 다음은 탐색기에 표시되지 않으며 주소 표시 줄에 입력하면 존재하지 않는다고 알려줍니다.

그러나 IMAPSize는 파일이 있다고 주장합니다. (작업 중에 많은 디스크 쓰기 작업이 수행되었습니다.) 또한 디렉토리 Windows 디렉토리 대화 상자에 표시되며 GNU 도구가 설치되어 ls있으므로 (기본은 dir아님) 표시됩니다. cd디렉토리에 들어갈 수 없지만 ls액세스 할 수있는 것 같습니다 (실제로 디렉토리와 파일이있는 것으로 보입니다).

목록을 보여주는 명령 프롬프트 창

또한 타임 스탬프와 파일 크기 및 출력 backup.db이 다릅니다 .dirls -l

한마디로 : 여기서 무슨 일이 일어나고 있고 어떻게 고쳐야합니까!?


1
내가 볼 수있는 유일한 차이점 ls -l은 "숨겨진"디렉토리 및 파일에 대한 고유 한 수의 하드 링크를 표시한다는 것입니다. NTFS 이유에서 하드 링크가 어떻게 해석되는지 또는 그 이유를 알 수 없습니다.
Xophmeister

... 확인해야 할 사항 : 명령 줄에서 cat(다른 GNU coreutil)을 사용하여 "숨겨진"파일의 데이터에 액세스 할 수 있습니다 . 그러나 다시 기본 Windows 도구 (예 type:)는 파일을 찾을 수 없습니다.
Xophmeister

답변:


63

파일을 만든 프로그램과 GNU 유틸리티가 관리자로 실행되고 있지 않습니다.

첫째, 일부 역사. 윈도우 XP의 시대에, 많은 프로그램들은 항상 관리자로 실행 것이고, 같은 장소에 기록 할 것이라고 가정 C:\WindowsC:\Program Files (x86)야생 포기와. Vista를 통해 Microsoft는 더 적은 사람을 관리자로 만들려고했지만 표준 사용자는 해당 위치에 쓸 수 없습니다. 계속 작동하려면 모호한 프로그램이 필요했습니다. 그렇지 않으면 사람들은 업그레이드하지 않을 것입니다. 그래서 그들은 UAC 가상화 라는 마법의 기능을 도입했습니다 .

표준 사용자로 실행되는 프로그램은 중요한 위치에 대한 쓰기가 성공했다고 생각할 수 있지만 실제로 Windows는 사용자 별 위치에서 데이터를 추출했습니다. 해당 프로그램이 디렉토리에서 파일을 찾을 때 Windows는 해당 장소의 가상 저장소에 파일이 있는지 확인하여 파일이 있으면 디렉토리 목록에 추가합니다. 레지스트리에는 동등한 기능이 있습니다.

메일 프로그램 Program Files (x86)이 일반 사용자로 실행되는 동안 아래 장소에 쓰려고 한 것 같습니다 . 쓰기가 리디렉션되었으므로 실제로 해당 위치로 이동하지 않았습니다. Windows가 환상을 유지하고 있기 때문에 프로그램에서 여전히 볼 수 있습니다. 탐색기는 운영 체제에 올바르게 작동하고 리디렉션이 필요하지 않음을 알리기 때문에 보이지 않습니다. 명령 프롬프트의 dir명령은 프로그램이 아니므로 (의 기능 일뿐 cmd.exe) "알고 있음"으로 간주되므로 호환성 파일이 표시되지 않습니다. ls아마도 알지 못하는 프로그램이므로 호환성 파일을 볼 수 있습니다.

여기에서 파일을 찾을 수 있습니다.

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

에서 둘러 보는 동안 VirtualStore어떤 프로그램이 제대로 작동하지 않고 가상화 안전망이 필요한지 놀랄 수 있습니다.

리디렉션을 중지하려면 프로그램을 관리자 권한으로 실행하거나 관리자 권한없이 실제로 쓸 수있는 위치에 백업을 저장하십시오.


16
그리고 여기서 나는 Windows를 알고 있다고 생각했습니다. 이것은 4 월의 바보 같은 농담이거나 오늘 중요한 것을 배웠습니다. 감사합니다, @Ben N!
Aganju

3
@Aganju 몇 달 전에 Windows 사용자가 WinSCP의 키 쌍을 만들도록 도와야했습니다. 그리고 그것들은 질문에 설명 된 것과 거의 같은 방식으로 보이지 않게되었습니다. 당시 나는이 답변에서 주어진 것과 거의 같은 설명을 가정했다. 대신 파일을 사용자의 홈 디렉토리에 두어 문제를 해결했기 때문에 내 가설을 확인하지 않았습니다. 그러나 적어도 나는이 대답이 나에게 농담처럼 보이지 않는다는 것을 확인할 수 있습니다.
kasperd

3
글쎄, 난 망할거야! 그들은 모두 있습니다. 즉 이상한 의도 경우에도, 행동. 파일 시스템 오류가 있다고 생각했습니다! ... 이것은 또한 첫 번째 사서함 백업이 표시되는 이유를 설명합니다. 프로그램이 설치 프로그램에서 처음 실행되었습니다 ( "지금 실행 하시겠습니까?"). 관리자 권한을 갖도록 상승했을 것입니다. "숨겨진"실행은 로컬 사용자로 실행되었습니다.
Xophmeister

1
@ Aganju 나는 Vista를 많이 사용하지 않은 것 같아요. 탐색기에서 가상화 된 파일을 표시하는 기능이 있습니다. 몇 년 동안 문제가 충분히 흔했기 때문입니다. Win7이 등장 할 때 가장 널리 사용되는 소프트웨어는 설치 디렉토리의 하위 폴더에 쓸 수 있다고 가정하여 중지했습니다. 최신 버전의 Windows에서는이 기능이 눈에 잘 띄지 않거나 완전히 제거되었습니다.
Dan Neely

4
@Xophmeister 트레이드 오프입니다. 답변에서 언급했듯이 Vista 이전에는 자체 응용 프로그램 디렉토리에 쓰는 소프트웨어가 일반적으로 일반적이었습니다. 이것은 방대한 보안 허점이므로 해결해야했습니다. 대안은 1) 쓰기 방지 및 모든 응용 프로그램 중단, 2) 가상화를 사용하여 파일을 안전한 위치에 저장하는 것입니다. 1) 분명히 Microsoft의 SOP에 맞서 고정 할 수 없으며 많은 경우 결국 모든 사람이 다시 관리자처럼 모든 것을 실행하게 할 것입니다. 혼란 스러울 수 있지만 여전히 최선의 선택 일 수 있습니다. 위험한 디렉토리에 쓰지 마십시오.
Luaan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.